使用Xamarin Forms和NuGet FFImageloading插件,我想在我的XAML代码中指定操作系统特定的图像路径,如下所示:
<ffimageloading:CachedImage DownsampleToViewSize="False" Aspect="AspectFill">
<ffimageloading:CachedImage.Source>
<OnPlatform x:TypeArguments="ImageSource"
iOS="MyProject.iOS.Resources.header_background.png"
Android="MyProject.Droid.Resources.Drawable.header_background.png" />
</ffimageloading:CachedImage.Source>
</ffimageloading:CachedImage>
iOS图像声明为BundleResource
,而Android图像声明为AndroidResource
。在iOS上,图像正确加载,但对于Android我一直收到此错误:
资源目录名无效:错误APT0000:obj / Debug / res / myproject.droid.resources.drawable.header_background.png(APT0000)(MyProject.Android)
有什么问题?图像的构建类型错误?我不明白。
答案 0 :(得分:0)
Xamarin.Forms中的图像源基于默认路径,这具有优势,而不是直接文件路径。
将图片放入
然后你只需用名称header_background.png引用它。
这增加了优势,因为您可以为iOS放置@ 2x或更高的图像,并将图像放在Android中的drawable-hdpi或其他类型的可绘制文件夹中,操作系统将确定最合适的图像。 / p>
答案 1 :(得分:0)
两个平台都有相同的文件名header_background.png
。所以设置
Source="header_background.png"
属性将在适当的资源中自动从droid和ios项目中读取。