Самый простой способ поддержки нескольких экранов - это разместить ресурсы в папках разной плотности, а макеты в папках разного размера.
Например, иметь следующую структуру папок:
AppRoot/
res/
drawable/
drawable-hdpi/
layout/
layout-large/
Вы можете размещать свои растровые изображения в разных каталогах для рисования в зависимости от их плотности и размеров. Это сортирует разные растровые изображения для экранов с разной плотностью.
Для разных макетов в зависимости от размера экрана в каталогах макетов и макетов большого размера поместите различные макеты для поддержки способа отображения экрана.
Давайте возьмем простой пример простого экрана заполнения списка для небольшого устройства, в отличие от большого экрана, где вы можете разместить свой список на 40% экрана, и информацию справа от этого:
layout/main_layout.xml
:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
>
<ListView
android:id="@+id/main_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
layout-large/main_layout.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:weightSum="1.0"
>
<LinearLayout
android:orientation="horizontal"
android:layout_weight="0.4"
android:layout_width="0dp"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/main_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/details_large"
android:layout_weight="0.6"
android:layout_width="0dp"
android:layout_height="fill_parent"
>
<include layout="@layout/detail_information" />
</LinearLayout>
Теперь ваше приложение может просто использовать «main_layout», и устройство выберет его в соответствии с размером экрана, что дает вам поддержку нескольких экранов.
Важным моментом является то, что макеты имеют одноименный файл main_layout.xml
, и Android выбирает один из правильной папки. То же самое относится и к растровым изображениям для кнопок и т. Д .; поместите одноименное растровое изображение в несколько каталогов, и Android разберется для использования в зависимости от плотности экрана.
Я воздерживался от размещения текстовых представлений и кнопок в этих примерах, потому что это просто элементы макета, которые можно заполнять по мере необходимости.