我已经实现了基于mgwt和PhoneGap的iOS应用程序。
我有一张图片
<g:Image url="resources/img/topMenuTitle.png"></g:Image>
和两个相应的文件topMenuTitle.png
(320像素x 40像素)和topMenuTitle@2x.png
(640像素×80像素)。
我不知道应用时在视网膜显示中显示图像的最佳方式是什么(即,当设备支持视网膜显示时加载topMenuTitle@2x.png
,否则加载topMenuTitle.png
。
到目前为止,我尝试使用retina.js
,但它没有用。我的猜测是Retinajs在页面加载时处理图片,并且它不处理稍后会出现的图像。
答案 0 :(得分:4)
对于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");
}
当然,更好的方法是使用延迟绑定,但这对于代码中的某些图像是可以的。
答案 1 :(得分:3)
使用DeferredBinding。这是一个例子: