3

mgwtと PhoneGapに基づいて iOS アプリケーションを実装しました。

イメージがあります

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

および 2 つの対応するファイルtopMenuTitle.png(320px x 40px) およびtopMenuTitle@2x.png(640px x 80px)。

適用時に Retina ディスプレイに画像を表示する最良の方法がわかりません (つまり、topMenuTitle@2x.pngデバイスが Retina ディスプレイをサポートしている場合などにロードし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/スタイリング

画像をロードする簡単な方法を探している場合は、次のようにすることができます。

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

DeferredBinding を使用します。以下に一例を示します。

http://retina.teknonsys.com/

于 2012-09-17T21:59:19.023 に答える