XML и набор ImageDrawable/setImageBitmap

В моем приложении выгодно, если я предварительно загружаю определенные изображения. Я делаю это правильно, в AsyncTask, как написано в официальной документации.Но у меня есть проблема/вопрос о том, когда они должны быть установлены.

Я покажу фрагменты кода. Обратите внимание, что это упрощено (их совместимость лучше в моем реальном коде, он проверяет наличие нулей и т. д.).

Давайте сначала посмотрим исходную (не предварительно загруженную) версию:

<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(...). Версия с предварительной загрузкой устанавливает изображение после этого вызова. Есть ли разница? Могут ли из-за этого быть пропущены автомасштабирование или другие действия системы?

5
задан Thomas Calc 10 June 2012 в 20:40
поделиться