Управление видимостью представления из ресурсов

У меня есть макет, содержащий два 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).

36
задан user1139880 17 March 2012 в 16:59
поделиться