【问题标题】:Xamarin Forms iOS - Display image from asset catalogXamarin Forms iOS - 显示资产目录中的图像
【发布时间】:2018-09-16 22:39:55
【问题描述】:

我知道有几个关于 SO 的问题涉及该主题,但是,到目前为止,它们并没有帮助我解决问题。我想以 xamarin 形式显示图像。在android上它可以工作,在iOS上图像不会显示。我使用资产目录来定义 iOS 中的图像。请看下面:

Xaml:

<Image Opacity="0.4" Source="happinessfactury.png" Aspect="AspectFill" />

iOS 项目文件:

<ImageAsset Include="Assets.xcassets\happinessfactury.imageset\Contents.json" />
<ImageAsset Include="Assets.xcassets\happinessfactury.imageset\happinessfactory@1x.png" />
<ImageAsset Include="Assets.xcassets\happinessfactury.imageset\happinessfactory@2x.png" />
<ImageAsset Include="Assets.xcassets\happinessfactury.imageset\happinessfactory@3x.png" />

contents.json

{"images": [
{
  "idiom": "universal"
},
{
  "filename": "happinessfactory@1x.png",
  "scale": "1x",
  "idiom": "universal"
},
{
  "filename": "happinessfactory@2x.png",
  "scale": "2x",
  "idiom": "universal"
},
{
  "filename": "happinessfactory@3x.png",
  "scale": "3x",
  "idiom": "universal"
},
{
  "idiom": "iphone"
},
{
  "scale": "1x",
  "idiom": "iphone"
},
{
  "scale": "2x",
  "idiom": "iphone"
},
{
  "subtype": "retina4",
  "scale": "2x",
  "idiom": "iphone"
},
{
  "scale": "3x",
  "idiom": "iphone"
},
{
  "idiom": "ipad"
},
{
  "scale": "1x",
  "idiom": "ipad"
},
{
  "scale": "2x",
  "idiom": "ipad"
},
{
  "idiom": "watch"
},
{
  "scale": "2x",
  "idiom": "watch"
},
{
  "screenWidth": "{130,145}",
  "scale": "2x",
  "idiom": "watch"
},
{
  "screenWidth": "{146,165}",
  "scale": "2x",
  "idiom": "watch"
},
{
  "idiom": "mac"
},
{
  "scale": "1x",
  "idiom": "mac"
},
{
  "scale": "2x",
  "idiom": "mac"
}],"info": {
"version": 1,
"author": "xcode"},"properties": {
"on-demand-resource-tags": [
  "happinessfactury"
]}}

编辑 1 在 Xaml 中,我错误地将源设置为 Source="happinessfactury",这是错误的。然而,即使使用 Source="happinessfactury.png" 它也不能在 iOS 上运行。 (虽然在安卓上)

编辑 2 这有点尴尬,但我解决了这个问题。错误是通过happinessfactury 而不是happinessfactory 引用xaml 中的图像,happinessfactory 是正确的名称,也是图像文件的名称。

【问题讨论】:

    标签: xamarin xamarin.forms xamarin.ios xcasset


    【解决方案1】:

    首先,我对您使用的是 Xamarin.Forms 还是 Xamarin.iOS 感到有些困惑。但是,将 Xamarin.forms 与 PCL 一起使用时,一种可能的解决方案是简单地将您希望显示的图像添加到您的便携式项目中的 Assets 文件夹中。然后使用 ImageSource.FromResource() 在后面的代码中设置图像源,如下所示:

    MyImg.Source = ImageSource.FromResource("ProjectName.Assets.happinessfactury.png");
    

    另一个可能有帮助的来源是 Book Creating Mobile Apps with Xamarin.Forms

    【讨论】:

    • 感谢您的回答,我解决了这个问题!看看我的帖子的编辑。
    猜你喜欢
    • 2021-07-05
    • 1970-01-01
    • 2018-03-16
    • 2016-06-15
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多