我已经实现了基于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");
}

当然,更好的方法是使用延迟绑定,但这对于代码中的某些图像是可以的。

07-26 07:31