xamarin - 如何从使用 Android 应用程序部署的本地文件中解码位图

标签 xamarin xamarin.android xamarin.forms

我正在经历http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/images/ 并试图让本地镜像与 Android 一起使用,但是当我尝试在正常的 monodroid 中执行某些操作作为进一步的测试时,我遇到了一些问题。我使用的是 SharedProject,仅供引用。

我已在 Resources/drawable (test1.png) 中添加了测试图像,并将构建操作设置为 AndroidResource,如其描述,如果我在 Xamarin.Forms 中执行以下操作,它会起作用:-

Xamarin.Forms.Image myimage = new Image();
myimage.Source = ImageSource.FromFile("test1.png");

但是,如果我尝试通过以下方式检索相同的文件,它将返回 null。

 Android.Graphics.Bitmap objBitmapImage = Android.Graphics.BitmapFactory.DecodeFile("test1.png")

有谁知道为什么这是空的以及如何纠正?

最佳答案

Xamarin.Forms FileImageSource 具有后备模式,因为它涵盖两种不同的场景。

首先它会通过BitmapFactory.DecodeFile检查文件系统中是否存在该文件。

如果File属性中指定的文件不存在,则它将使用BitmapFactory.DecodeResource尝试加载资源内容作为次要选择。

因此,Android

FileImageSource 不仅适用于文件系统中存在的文件,还可以检索命名资源。

这个link表示Android 资源已编译到应用程序中,因此不会作为物理文件成为文件系统的一部分。

关于xamarin - 如何从使用 Android 应用程序部署的本地文件中解码位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26187146/

相关文章:

c# - 如何删除 00 :00:00 from DateTime property

c# - 当我的应用程序运行时,是否可以检测 float /多窗口应用程序的使用?

c# - 是否可以在xamarin表单中访问从第一页到第二页的进度条?

android - 在关闭应用的情况下调用 Xamarin.Forms 依赖服务

xamarin - 无法升级 Xamarin.Android 的 nuget 包

xamarin - 如何为Xamarin native iOS和Android应用程序的新页面添加ViewModel

Xamarin 形成边距

c# - “无法等待任务 <string>”(PCL Xamarin Studio)

c# - xamarin.android - OnKeyLongPress 不触发

xamarin - 错误 ITMS-90022 缺少必需的图标文件