По сути, вам нужно предоставить два разных xml-файла для вашего приложения, один для портрета, один раз для ландшафта согласно: Предоставление ресурсов . Android выберет правильный XML-файл в зависимости от ориентации.
и ImageView.ScaleType объясняет различные стили масштабирования
Вот что я бы предложил:
res/layout-land/main.xml
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/debris_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:weight="1"
android:src="@drawable/image1"
</ImageView
... repeat 5 more times ...
</LinearLayout>
элемент weight
должен привести их все в соответствие, но может возникнуть конфликт с scaleType
. в любом случае, это должно быть сделано для вашего ландшафта, для портрета, вы можете сделать так, чтобы было два ряда изображений, или вы могли бы использовать horizontalScrollView
, как показано ниже:
res/layout-port/main.xml
<?xml version="1.0" encoding="utf-8" ?>
<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/debris_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:weight="1"
android:padding="15dp"
android:src="@drawable/image1"
</ImageView
... repeat 5 more times ...
</LinearLayout>
</HorizontalScrollView>
действительно, вы могли бы просто использовать портрет main.xml
в качестве единственного файла макета и просто иметь горизонтальную прокрутку независимо от ориентации. вам может понадобиться несколько раз изменить портрет main.xml
, так как я на работе, и я не уверен, насколько хорошо weight
работает с horizontalScrollView
насколько расстояние между каждым элементом, вы бы использовали android: padding , как у меня выше.