У меня есть простой макет, который показывает текст и изображение:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="TEST"
android:textColor="#0099cc"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tint="#55ff0000"
android:src="@drawable/my_image"/>
</LinearLayout>
</LinearLayout>
Я хотел бы, чтобы изображение отображалось только тогда, когда устройство находится в режиме портретной ориентации.
Я имею в виду, что если устройство находится в ландшафтном режиме, я хотел бы не только скрыть изображение, но и полностью удалить изображение из макета. Как это сделать?
Вы можете указать два макета: один режим портретной ориентации, расположенный в папке макета порта и один для ландшафтного режима, расположенный в папке макета. Надеюсь это поможет.
Android обеспечивает это, позволяя вам иметь несколько файлов макета в отдельных папках макета, которые используются в разных средах.
Вы должны перенести этот xml файл в новую папку res/layout-port
в своей структуре каталогов и создать копию в res/layout-land
которой не хватает ImageView
. Android выберет соответствующий XML файл в зависимости от ориентации устройства.
Там больше информации здесь.