我已经实现了基于mgwt和PhoneGap的iOS应用程序。
我有一张图片
<g:Image url="resources/img/topMenuTitle.png"></g:Image>
以及两个相应的文件
topMenuTitle.png
(320像素x 40像素)和[email protected]
(640像素x 80像素)。我不知道在应用时在视网膜显示中显示图像的最佳方法是什么(即,当设备支持视网膜显示时加载
[email protected]
,否则加载topMenuTitle.png
)。到目前为止,我尝试使用
retina.js
,但是没有用。我的猜测是Retinajs在页面加载时处理图片,而不会处理稍后显示的图片。 最佳答案
对于mgwt,存在递延的绑定变量mgwt.os。它可以具有不同的值:
<define-property name="mgwt.os" values="iphone, ipad, retina, ipad_retina, android, android_tablet, blackberry, desktop" />
您可以使用该变量,并在应用程序中使用其他资源。
看看在mgwt中完成主题化的方式,以了解如何提供不同的图像:
http://code.google.com/p/mgwt/wiki/Styling
如果您正在寻找一种加载图像的简单方法,则可以执行以下操作:
OsDetection d = MGWT.getOsDetection();
Image img = null;
if(d.isRetina() || isIPadRetina()){
img = new Image("retinaurl");
}else{
img = new Image("nonretinaurl");
}
当然,更好的方法是使用延迟绑定,但这对于代码中的某些图像是可以的。