Есть ли способ изменить ImageView drawable с его соответствием, drawable для альбомного режима, не уничтожая целое действие. Я пытался установить drawable снова в onConfigurationChanged обратном вызове, но он не работает. Что-то вроде этого
@Override
public void onConfigurationChanged(Configuration conf) {
super.onConfigurationChanged(conf);
mImageView.setImageDrawable(getResources().getDrawable(R.drawable.iv));
}
То, когда я соединяю действие звездой в альбомном режиме для исправления drawable, отображено так, ресурсы расположены правильно.
В вашем примере проекта просто замените
iv.setBackgroundResource(R.drawable.android);
на
iv.setImageDrawable(getResources().getDrawable(R.drawable.android));
Я полагаю, что setBackgroundResource ничего не делает, потому что тот же ресурс уже назначен ImageView.
Взгляните на этот
http://open-pim.com/tmp/ImageTest.zip
Я попробовал ваш подход, и он отлично мне подходит.
Есть ли способ изменить ImageView drawable с соответствующим drawable для ландшафтного режима без разрушения всей активности.
При смене портретного режима на ландшафтный или наоборот Activity создается заново. Проверьте, что вызывается метод onCreate()
.
Если вы хотите избежать такого поведения, используйте:
android:configChanges="orientation|keyboardHidden"
для вашей Activity
в AndroidManifest
.
--
Что касается вашего вопроса:
Я бы сначала проверил, как оно вызывается после смены ориентации:
onConfigurationChanged
or onCreate
.
Если onConfigurationChanged
вызывается первым, то ваш setContentView()
в методе onCreate()
заменяет ваш ImageView
drawable.