Я новичок в android и хочу создать макет, который будет работать на всех экранах телефона и планшета Android. Способ ли это сделать?
Макет дизайна для нескольких экранов
Ответ 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
Чтобы помочь вам настроить таргетинг на некоторые из ваших проектов для разных типов устройств, вот некоторые цифры для типичной ширины экрана:
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)
он работает....