以编程方式加载时未加载/未找到图像目录中的图像

时间:2016-02-24 09:51:36

标签: ios xamarin assets

我正在尝试使用我根据https://developer.xamarin.com/guides/ios/application_fundamentals/working_with_images/displaying-an-image/

中描述的文章添加的图像目录来管理背景图像

我正在尝试以编程方式加载图像但没有成功,但如果我将图像视图放到我的View Controller上并使用Xamarins UI插入图像,它就可以正常加载。

json和图像的构建操作设置为ImageAsset。

不确定我哪里出错了。

查看控制器代码

using Foundation;
using System;
using System.CodeDom.Compiler;
using UIKit;

namespace Performance
{
    partial class VCLanding : UIViewController
    {
        public VCLanding (IntPtr handle) : base (handle)
        {
        }

        public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();

            UIImageView testImageView = this.imgVwTest;
            UIImage testImagePreLoaded = UIImage.FromBundle ("backgroundimage");

            testImageView.Image = testImagePreLoaded;

//          try{
//              UIImage backgroundImage = UIImage.FromBundle("backgroundimage");
//              View.BackgroundColor = UIColor.FromPatternImage(backgroundImage);
//          }catch(Exception ex){
//              Console.WriteLine (ex.Message);
//          }

        }
    }
}

资源的文件夹结构:

Contents.json

调试结果

1 个答案:

答案 0 :(得分:0)

好的,上面列出的文档没有提到我自己需要将Images本身标记为BundleResource(Json保留ImageResource)。只有通过实验才能通过改变图像的构建动作来实现这一目的。

创建新的图像集然后通过资源浏览器添加图像默认情况下将图像标记为ImageAsset,因此您需要将它们更改为BundleResource。

但是...

现在我已经解决了上述问题,除了iPad Air 2之外,图像加载正常。这似乎是使用@ 2x图像并将其平铺。它是否应该拉伸此图像以填充设备屏幕或使用@ 3x图像?

我的图片尺寸为

@3x = 1242 x 2208
@2x = 750 x 1334
@1x = 768 x 1024

iPad Air 2 - 使用@ 2x版本的图像,但将其平铺以填充

iPad 2 - 使用@ 1x版本的图像并正确填充