Может кто-нибудь дать мне примеры для кнопки и textViews в Android, которые будут соответствовать «Поддержка нескольких экранов»? - PullRequest
1 голос
/ 01 июля 2011

Я прочитал http://developer.android.com/guide/practices/screens_support.html.com?, но не смог понять, как это применить, может кто-нибудь привести пример с кнопками и просмотром текста, как он будет подходить на разных устройствах?

Ответы [ 2 ]

2 голосов
/ 01 июля 2011

Это не так сложно, как вы думаете.Во-первых, помните, что ваш базовый макет всегда рассчитан на mdpi, для нормального размера экрана со средней плотностью (около 160 точек на дюйм).

Поэтому при разработке макета важная часть заключается в том, что вы не используете px как единицу измерения при определении макета.Вместо этого всегда используйте dp (независимый от плотности пиксель) в качестве единицы измерения, поскольку они автоматически масштабируются до правильного числа px для текущей плотности.

До этого момента у вас есть только один файл (например, myLayout.xml) для всех разных размеров макета (маленький, нормальный, большой и большой).Если вы считаете, что ваш макет должен отличаться на устройстве с дисплеем xlarge, таком как планшет, вы просто создаете другую папку с именем layout-xlarge на том же уровне, что и layout, и другой файл макета с именем myLayout.xml.Теперь вы можете внести изменения в этот файл, чтобы макет выглядел по-другому на устройствах с дисплеем xlarge.Возможно, вы хотите, чтобы текстовое поле большего размера, вы хотите изменить расположение кнопки и текстового поля.

Итак, как вы видите, это не так сложно.Просто используйте dp как единицу измерения, а Android сделает все остальное за вас.

0 голосов
/ 01 июля 2011

Самый простой способ поддержки нескольких экранов - это разместить ресурсы в папках разной плотности, а макеты в папках разного размера.

Например, иметь следующую структуру папок:

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 разберется для использования в зависимости от плотности экрана.

Я воздерживался от размещения текстовых представлений и кнопок в этих примерах, потому что это просто элементы макета, которые можно заполнять по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...