3

私の質問は本当に簡単で、撃ちました。しかし、明確な答えが得られることを願っています。GWT イメージはさまざまな方法で作成できます。

Image image = new Image ( (ImageResource)imageRes);

Image image = new Image ( (ImageResource)imageRes.getSafeUri() );

Image image = new Image ();
image.setUrl((ImageResource)imageRes.getSafeUri().asString() );

私の質問は、ImageResouce を使用して新しいイメージを作成するこれら 3 つの方法の違いは何ですか。初めての読み込みに最適または高速なのはどれですか?

ありがとう

4

1 に答える 1

4

まず、最後の 2 つは使用しないでください。

ImageResource技術的に「スプライトされた」画像内の領域を表します。これには、スプライトへの URL とその画像上の領域の座標があります。多くのブラウザーやほとんどの画像では、URL は実際にはdata:URL であり、領域は画像全体を表します。これは、 を使用してイメージごとに、@ImageOptions(preventInlining=true)または を使用してグローバルに制御できset-propertyますgwt.xml。つまり、コードはそれに依存するべきではなくImageResource、スプライトされた画像内の領域として常に を扱う必要があります。参考までに、実際にデフォルト
でスプライト画像が使われるのは、URLをサポートしていないIE6/7と、大きすぎてURLに収まらない画像(全ブラウザ)です。data:data:

ただし、これは最後の 2 つのケースで行っていることとまったく同じです。ImageResource(潜在的に) スプライトされた画像ではないかのように、 の URL のみを使用します。

于 2012-07-26T17:14:10.007 に答える