Дизайн-макет для нескольких экранов - PullRequest
19 голосов
/ 08 декабря 2011

Я новичок в Android, и хотите разработать макет, который работает на всех экранах телефона и планшета Android?Это их способ сделать?

Ответы [ 5 ]

95 голосов
/ 08 декабря 2011

Вам нужно создать разную раскладку для разных размеров экрана. Поддержка всех экранов, необходимых для создания следующего макета:

  1. Малые экраны низкой плотности QVGA 240x320 (120 точек на дюйм):

    layout-small-ldpi (240x320)  
    layout-small-land-ldpi (320x240)
    
  2. Низкая плотность Нормальные экраны WVGA400 240x400 (x432) (120 точек на дюйм):

    layout-ldpi  (240 x 400 )
    layout-land-ldpi  (400 x 240 )
    
  3. Средняя плотность Нормальные экраны HVGA 320x480 (160 точек на дюйм):

    layout-mdpi (320 x 480 )
    layout-land-mdpi (480 x 320 )
    
  4. Средняя плотность Большие экраны HVGA 320x480 (160 точек на дюйм):

    layout-large-mdpi (320 x 480 )
    layout-large-land-mdpi (480 x 320)
    
  5. Galaxy Tab (240 dpi):

    layout-large  (600 x 1024) 
    layout-large-land  (1024 x 600)
    
  6. Нормальные экраны высокой плотности WVGA800 480x800 (x854) (240 т / д):

    layout-hdpi (480 x 800)
    layout-land-hdpi (800 x 480)
    
  7. Xoom (большая плотность, но разрешение 1280x800) (160 dpi):

    layout-xlarge (800 x 1280)
    layout-xlarge-land (1280 x 800)
    

Также добавьте следующий код в .manifest файл:

<supports-screens                                 
    android:smallScreens="true"                    
    android:normalScreens="true"         
    android:largeScreens="true"            
    android:xlargeScreens="true"             
    android:anyDensity="true" />
7 голосов
/ 08 декабря 2011
<supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true"
        android:anyDensity="true" />

Вероятно, вам следует прочитать это:

6 голосов
/ 08 декабря 2011

В дополнение к традиционным параметрам экранов поддержки см. Новые определители размера , выпущенные в версии 3.2

Использование новых определителей размера

Различные конфигурации ресурсов, которые вы можете указать на основе пространства, доступного для вашего макета, сведены в таблицу 2. Эти новые квалификаторы предоставляют вам больший контроль над конкретными размерами экрана, поддерживаемыми вашим приложением, по сравнению с традиционными группами размеров экрана (маленькими , нормальный, большой и большой).

Таблица 2 enter image description here

Чтобы помочь вам нацелить некоторые из ваших дизайнов для различных типов устройств, вот несколько цифр для типичной ширины экрана:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

Используя квалификаторы размера из таблицы 2, ваше приложение может переключаться между различными ресурсами макета для мобильных телефонов и планшетов, используя любое число, необходимое для ширины и / или высоты. Например, если 600dp - это наименьшая доступная ширина, поддерживаемая макетом планшета, вы можете предоставить следующие два набора макетов:

res/layout/main_activity.xml           # For handsets
res/layout-sw600dp/main_activity.xml   # For tablets
<manifest ... >
    <supports-screens android:requiresSmallestWidthDp="600" />
    ...
</manifest>
3 голосов
/ 25 марта 2015

Если вы хотите использовать только один макет XML, который масштабируется с размером экрана, вы можете использовать sdp sdk .

Добавить SDK SDK:

dependencies {
    compile 'com.intuit.sdp:sdp-android:1.0.2'
}

И вы сможете определить масштабируемый TextView:

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="A scalable text"
        android:textSize="@dimen/_12sdp" />
1 голос
/ 17 декабря 2011

, если вы используете android 1.6, попробуйте это для другого макета, как я использовал его:

  1. если ширина - высота - плотность: - 320 - 480 - 160, то имя папки res / layout: - (layout-medium-mdpi)
  2. если ширина - высота - плотность: - 480 - 800 - 160, то имя папки res / layout: - (layout-large-mdpi)
    или если ширина -высота - плотность: - 480 800 240 затем имя папки res / layout: - (layout-medium-hdpi)

все работает ....

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