MonoTouch UIImage.FromResource加载Retina图像

3
我有一个类,从引用的MonoTouch库中的嵌入资源加载图像,代码如下:

UIImage.FromResource (null, "Resources.Items");

如果使用UIImage.FromFile ("abc.png");并且我包含了一个名为abc@2x.png的文件,则在兼容设备上显示视网膜图像。
如何实现相同效果,即使用UIImage.FromResource (null, "Resources.Items");加载视网膜图像?
由于资源位于引用的DLL中,因此无法使用UIImage.FromFile ("abc.png");
1个回答

3

检测视网膜屏幕非常容易。从那里,您可以从程序集中加载正确的资源。例如:

UIImage.FromResource (null, (UIScreen.MainScreen.Scale > 1.0)
    ? "Resources.Items.Retina" : "Resources.Items");

使用此功能,您可以根据自己的喜好命名视网膜资源,包括使用标准的@2x符号。请注意,不要删除HTML标签。

我还没有尝试过,但是为了让视网膜图像显示为视网膜图像,Resources.Items.Retina需要缩小0.5倍吗?我只是问一下,因为从逻辑上讲,我希望@2x的UIImage显示为普通图像,两倍大小(例如64 x 64,而不是32 x 32)。 - Darbio
这取决于它使用的上下文。如果您正在使用自己的代码显示它,请参见:http://stackoverflow.com/a/11808894/220643 如果有疑问,请使用模拟器(视网膜,1倍缩放)和任何(多个)允许您在屏幕上缩放的工具。如果图像被缩放(或未缩放),则会显而易见。 - poupou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接