изменитесь отображают onConfigurationChanged

Есть ли способ изменить ImageView drawable с его соответствием, drawable для альбомного режима, не уничтожая целое действие. Я пытался установить drawable снова в onConfigurationChanged обратном вызове, но он не работает. Что-то вроде этого

@Override
public void onConfigurationChanged(Configuration conf) {
    super.onConfigurationChanged(conf);
    mImageView.setImageDrawable(getResources().getDrawable(R.drawable.iv));
}

То, когда я соединяю действие звездой в альбомном режиме для исправления drawable, отображено так, ресурсы расположены правильно.

6
задан Mojo Risin 14 July 2010 в 09:18
поделиться

2 ответа

В вашем примере проекта просто замените

iv.setBackgroundResource(R.drawable.android);

на

iv.setImageDrawable(getResources().getDrawable(R.drawable.android));

Я полагаю, что setBackgroundResource ничего не делает, потому что тот же ресурс уже назначен ImageView.

Взгляните на этот
http://open-pim.com/tmp/ImageTest.zip
Я попробовал ваш подход, и он отлично мне подходит.

6
ответ дан 17 December 2019 в 02:21
поделиться

Есть ли способ изменить ImageView drawable с соответствующим drawable для ландшафтного режима без разрушения всей активности.

При смене портретного режима на ландшафтный или наоборот Activity создается заново. Проверьте, что вызывается метод onCreate().

Если вы хотите избежать такого поведения, используйте:

android:configChanges="orientation|keyboardHidden"

для вашей Activity в AndroidManifest.

--

Что касается вашего вопроса: Я бы сначала проверил, как оно вызывается после смены ориентации: onConfigurationChanged or onCreate.

Если onConfigurationChanged вызывается первым, то ваш setContentView() в методе onCreate() заменяет ваш ImageView drawable.

0
ответ дан 17 December 2019 в 02:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: