Для макетов
Во-первых, вы должны начать с чтения официального Рекомендации по использованию нескольких экранов .Там есть много хороших советов, а также общее представление о том, что вам нужно искать с точки зрения совместимости.
Одна вещь, которую я нашел очень полезной, которая кажется довольно очевидной,это на самом деле проверить свой макет в эмуляторах разных размеров.Как выглядит ваш макет при расширении до 1024x768 (даже если ни одно устройство не будет иметь такого разрешения)?Как насчет того, когда он супер крошечный и квадратный?Просмотр того, как макет растягивается / сжимается, поможет настроить его так, чтобы он лучше подходил для всех экранов.
layout_weight
В макетах android:layout_weight
- мощный, но недостаточно документированный атрибут.Используя его, вы можете создавать макеты, где компоненты имеют размеры в процентах друг к другу.
Например:
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:layout_weight="80"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button android:layout_weight="20"
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content />
</LinearLayout>
В этом макете <EditText/>
займет 80% доступной ширины, а <Button/>
займет 20% доступной ширины.,Очевидно, это следует использовать осторожно, чтобы все предметы можно было использовать, даже если они маленькие.
<include />
Еще одна полезная практика компоновки заключается в объединении общих битов макета в отдельные файлы и включении их с помощью <include layout="@layout/smaller_section" />
.Таким образом, вы можете перемещаться по другим частям макета (скажем, для ландшафта) без необходимости сохранять целые параллельные версии макета.