2013-01-14 85 views
3

我有如下它加载在引用MonoTouch的库从嵌入的资源的图像需要的类别:MonoTouch的UIImage.FromResource负载视网膜图像

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

如果是UIImage.FromFile ("abc.png");和我包括一个名为[email protected]视网膜文件图像将显示在兼容设备上。

如何实现相同的,即加载视网膜图像,利用UIImage.FromResource (null, "Resources.Items");

我不能使用UIImage.FromFile ("abc.png");作为资源在一个被引用的DLL。

回答

2

很容易detect a retina display。从那里你可以从你的程序集加载正确的资源。例如。

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

使用这个,只要你喜欢,包括使用标准@2x符号,如果你喜欢它,你可以说出你的视网膜资源。

+0

我还没有尝试过,但为了将视网膜图像显示为视网膜图像,“Resources.Items.Retina”是否需要缩放0.5?我只是在逻辑上问,我期望@ 2x'UIImage'显示为正常图像的两倍(例如64 x 64,而不是32 x 32)。 – Darbio

+0

这取决于它的使用情况。如果您使用自己的代码显示它,请参阅:http://stackoverflow.com/a/11808894/220643如果有疑问,请使用模拟器(视网膜,1倍变焦)和任何(多种)工具,以便您放大屏幕。如果图像被缩放(或不缩放),这将是显而易见的。 – poupou