使用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)
怎么了?图像的构建类型错误?我不明白 .
2 回答
Xamarin.Forms中的图像源基于默认路径,这具有优势,而不是直接文件路径 .
将图像放入
Android - / Resources / drawable
iOS - /资源或作为资产
UWP - 根项目文件夹
然后你只需要通过名称header_background.png引用它 .
这增加了优势,因为您可以为iOS放置@ 2x或更高的图像,并将图像放在Android中的drawable-hdpi或其他类型的可绘制文件夹中,操作系统将确定最合适的图像 .
两个平台都有相同的文件名
header_background.png
. 因此,设置Source="header_background.png"
属性将自动从适当的资源中读取droid和ios项目 .