以编程方式设置图像时支持ipad上的多个屏幕

时间:2013-10-16 19:39:24

标签: iphone ipad xamarin.ios xamarin

我正在尝试支持我的通用monotouch应用程序中的所有可用屏幕。

在我的某个屏幕中,我有一个全屏UIImage来显示全屏图像。图像名称是bg.png。我的屏幕只支持肖像,我通过下面的命名和大小添加一些版本的图像:

bg.png ----->分辨率320x480

bg@2x.png ------> 640x960的

bg-568h@2x.png -----> 640x1136

BG-Portrait.png -----> 768×1004

bg-Portrait@2x.png -----> 1536×2008

此外,我使用下面的代码将其分配给视图的背景:

sImage .Image = UIImage .FromFile ("ProjectRes/Images/bg.png");

虽然我将图像添加到所有版本但我不知道为什么图像在ipda视网膜或ipad甚至iphone 5上都没有合适的质量。我的代码错了吗?

修改

我将代码更改为:

splashImage .Frame = new RectangleF (0,0,this.View .Bounds .Width ,this.View .Bounds .Height );
splashImage .Image = UIImage .FromBundle  ("ProjectRes/Images/bg");

但尚未奏效。如果它们有用,我会将这些代码添加到我在屏幕的ViewWillAppear方法上调用的方法中。ViewWillAppear这是一个好地方吗?

我是否为ipad和iphone 5使用了正确的命名?我在资源中复制了来自splash image后缀的后缀。它们对其他图像也一样吗?

1 个答案:

答案 0 :(得分:0)

FromFile() maps to UIImage的+imageWithContentsOfFile:方法,它不支持UIKit的图像命名后缀模式。您应该可以使用FromBundle()代替“.png”后缀,以便自动选择正确的资源。