3

我已经实现了一个基于mgwt和 PhoneGap 的 iOS 应用程序。

我有一张图片

<g:Image url="resources/img/topMenuTitle.png"></g:Image>

和两个相应的文件topMenuTitle.png(320 像素 x 40 像素)和topMenuTitle@2x.png(640 像素 x 80 像素)。

我不知道应用时在视网膜显示中显示图像的最佳方式是什么(即,topMenuTitle@2x.png在设备支持视网膜显示时加载等topMenuTitle.png)。

到目前为止,我尝试使用retina.js但它没有用。我的猜测是 Retinajs 在页面加载的那一刻处理图片,它不处理稍后会显示的图像。

4

2 回答 2

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");
}

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

于 2012-09-18T03:41:00.920 回答
3

使用延迟绑定。这是一个例子:

http://retina.teknonsys.com/

于 2012-09-17T21:59:19.023 回答