Подтвердить что ты не робот

Макет дизайна для нескольких экранов

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

4b9b3361

Ответ 1

<supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true"
        android:anyDensity="true" />

Вероятно, вы должны прочитать это:

Ответ 2

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

  • Малые экраны низкой плотности QVGA 240x320 (120dpi):

    layout-small-ldpi (240x320)  
    layout-small-land-ldpi (320x240)
    
  • Стандартные экраны низкой плотности WVGA400 240x400 (x432) (120dpi):

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

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

    layout-large-mdpi (320 x 480 )
    layout-large-land-mdpi (480 x 320)
    
  • Вкладка Galaxy (240 dpi):

    layout-large  (600 x 1024) 
    layout-large-land  (1024 x 600)
    
  • Высокие плотности Обычные экраны WVGA800 480x800 (x854) (240 dpi):

    layout-hdpi (480 x 800)
    layout-land-hdpi (800 x 480)
    
  • 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" />

Ответ 3

В дополнение к традиционным параметрам поддерживающих экранов ссылаются на новый Размерные критерии, запущенные в 3.2

Использование квалификаторов нового размера

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

Таблица 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>

Ответ 4

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

Добавьте sdp 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" />

Ответ 5

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

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

он работает....