0

使用 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)

怎么了?图像的构建类型错误?我不明白。

4

2 回答 2

0

Xamarin.Forms 中的图像源基于默认路径,这比直接文件路径具有优势。

将您的图像放入

  1. Android - /Resources/drawable
  2. iOS - /Resources 或作为资产
  3. UWP - 根项目文件夹

然后您只需通过名称 header_background.png 引用它。

这增加了一些优势,因为您可以为 iOS 放置 @2x 或更大的图像,并将图像放置在 drawable-hdpi 或 Android 中的其他类型的可绘制文件夹中,操作系统将确定最合适的一个。

于 2017-11-05T00:54:45.470 回答
0

两个平台的文件名相同header_background.png。所以设置 Source="header_background.png"属性将在适当的资源中自动从 droid 和 ios 项目中读取。

于 2017-11-05T17:33:54.153 回答