我正在经历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
尝试加载资源内容作为次要选择。
FileImageSource 不仅适用于文件系统中存在的文件,还可以检索命名资源。
这个link表示Android 资源已编译到应用程序中,因此不会作为物理文件成为文件系统的一部分。
关于xamarin - 如何从使用 Android 应用程序部署的本地文件中解码位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26187146/