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

Есть ли способ изменить ImageView drawable с соответствующим режимом рисования для ландшафта, не разрушая всю активность. Я попытался снова установить drawable в onConfigurationChanged, но он не работает. Что-то вроде этого

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

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

Solutions Collecting From Web of "Изменить изображение onConfigurationChanged"

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

 iv.setBackgroundResource(R.drawable.android); 

с

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

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

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

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

Когда вы переключаетесь с портрета на пейзаж или наоборот, активность воссоздается. Убедитесь, что onCreate() метод onCreate() .

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

 android:configChanges="orientation|keyboardHidden" 

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

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

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

Для эмулятора вам понадобится screenLayout в дополнение к ориентации для вызова метода.

 android:configChanges="orientation|screenLayout"