特定の画像をプリロードすると、アプリケーションで有利になります。公式ドキュメントに書かれているように、AsyncTaskでこれを正しく行います。しかし、いつ設定すべきかについて問題/質問があります。
コードスニペットを表示します。単純化されていることに注意してください(実際のコードでは相互運用性が優れており、nullなどをチェックします)。
最初に元の(プリロードされていない)バージョンを見てみましょう。
<ImageView
android:id="@+id/imageViewMyGraphicalImageElement"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/my_graphical_element" >
</ImageView>
プリロードされたバージョンには、次のXMLが含まれています(src属性が欠落していることに注意してください)。
<ImageView
android:id="@+id/imageViewMyGraphicalImageElement"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop">
</ImageView>
そして、プリロードコードからのスニペット:
sBitmap = bitmapBitmapFactory.decodeResource(context.getResources(), R.drawable.my_graphical_element, options);
// 'sBitmap' is a Bitmap reference, while 'options' is BitmapFactory.Options
最後に、私がそれを設定した場所:
setContentView(R.layout.main);
...
ImageView imageViewMyGraphicalImageElement= (ImageView) findViewById(R.id.imageViewMyGraphicalImageElement);
imageViewMyGraphicalImageElement.setImageBitmap(sBitmap);
質問:明らかに、xmlベースのソリューションはsetContentView(...)が呼び出される前に画像を認識しています。プリロードバージョンは、その呼び出しの後にイメージを設定します。違いはありますか?これにより、システムによって実行される自動スケーリングやその他の処理をスキップできますか?