У меня есть макет, содержащий два ImageView. Я хочу, чтобы один из них был виден в портретном режиме, а другой — в ландшафтном. Как мне достичь этого с помощью ресурсов? (Я знаю, как настроить его программно, но для этого конкретного использования мне нужно использовать ресурсы).
Я пробовал что-то вроде
в res/layout/may_layout.xml:
...
<ImageView
android:id="@+id/image1"
android:visibility="@integer/visible_in_portrait" <<-- is this allowed?
...
/>
<ImageView
android:id="@+id/image2"
android:visibility="@integer/visible_in_landscape"
...
/>
в res/values/integers.xml:
...
<!-- NOTE: 0 and 8 are VISIBLE and GONE respectively -->
<integer name="visibile_in_portrait">0</integer>
<integer name="visibile_in_landscape">8</integer>
в res/values-land/integers.xml:
...
<integer name="visibile_in_portrait">8</integer>
<integer name="visibile_in_landscape">0</integer>
Но я получаю ошибку времени выполнения (index out ofbound)при попытке раздуть изображения. Когда я удаляю операторы видимости android:, программа запускается, но я вижу оба изображения.
В:Как можно использовать ресурс в качестве значения атрибута видимости android:?
(Если вам интересно, почему программная установка мне не поможет, то это связано с автоматическим переключением виджетов приложений с uri-битмапами в форматах Landspace/Portrait).