GWT,mgwt和视网膜显示

时间:2012-09-17 21:41:35

标签: ios gwt cordova retina-display mgwt

我已经实现了基于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在页面加载时处理图片,并且它不处理稍后会出现的图像。

2 个答案:

答案 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。这是一个例子:

http://retina.teknonsys.com/