- синтаксис:
<supports-screens android:resizeable=["true"| "false"] android:smallScreens=["true" | "false"] android:normalScreens=["true" | "false"] android:largeScreens=["true" | "false"] android:xlargeScreens=["true" | "false"] android:anyDensity=["true" | "false"] android:requiresSmallestWidthDp="integer" android:compatibleWidthLimitDp="integer" android:largestWidthLimitDp="integer"/>
- содержится в:
-
<manifest>
- описание:
Позволяет указать размеры экрана, которые поддерживает ваше приложение, и включить режим совместимости экранов для экранов большего размера, чем поддерживает ваше приложение. Важно всегда использовать этот элемент в своем приложении, чтобы указать размеры экрана, которые поддерживает ваше приложение.
Примечание. Режим совместимости экрана — это не тот режим, в котором должно работать ваше приложение. Он вызывает пикселизацию и размытие пользовательского интерфейса из-за масштабирования. Правильный способ обеспечить хорошую работу вашего приложения на больших экранах — следовать обзору совместимости экранов и предоставить альтернативные макеты для экранов разных размеров.
Приложение «поддерживает» заданный размер экрана, если его размер правильно изменяется, чтобы заполнить весь экран. Обычное изменение размера, применяемое системой, хорошо работает для большинства приложений, и вам не нужно выполнять какую-либо дополнительную работу, чтобы ваше приложение работало на экранах, больших, чем телефон.
Однако часто бывает важно оптимизировать пользовательский интерфейс вашего приложения для экранов разных размеров, предоставив альтернативные ресурсы макета . Например, вы можете захотеть изменить макет действия, когда оно выполняется на планшете, по сравнению с тем, когда оно выполняется на мобильном устройстве.
Однако если ваше приложение не работает должным образом при изменении размера для соответствия разным размерам экрана, вы можете использовать атрибуты элемента
<supports-screens>
, чтобы контролировать, будет ли ваше приложение распространяться только на меньшие экраны или его пользовательский интерфейс будет масштабироваться, или «увеличено» для соответствия экранам большего размера с использованием режима совместимости экранов системы.Если вы не проектируете экраны большего размера и обычное изменение размера не дает нужных результатов, режим совместимости экранов масштабирует ваш пользовательский интерфейс, имитируя экран нормального размера и средней плотности. Затем он увеличивается так, что занимает весь экран. Имейте в виду, что это приводит к пикселизации и размытию вашего пользовательского интерфейса, поэтому лучше, если вы оптимизируете свой пользовательский интерфейс для больших экранов.
Примечание. В Android 3.2 появились новые атрибуты:
android:requiresSmallestWidthDp
,android:compatibleWidthLimitDp
иandroid:largestWidthLimitDp
. Если вы разрабатываете приложение для Android 3.2 и более поздних версий, используйте эти атрибуты, чтобы объявить поддержку размера экрана вместо атрибутов, основанных на обобщенных размерах экрана.О режиме совместимости экрана
Режим совместимости экрана — это последнее средство для приложений, которые не разработаны должным образом для использования преимуществ экранов большего размера. Это не тот режим, в котором вы хотите, чтобы ваше приложение работало, потому что он может ухудшить взаимодействие с пользователем. Существует две версии режима совместимости экрана в зависимости от версии устройства, на котором работает приложение.
В версиях Android от 1.6 до 3.1 система запускает ваше приложение в окне «почтовой марки». Он эмулирует экран с разрешением 320 x 480 точек с черной рамкой, заполняющей оставшуюся часть экрана.
В Android 3.2 и более поздних версиях система рисует макет так же, как на экране с разрешением 320 x 480 точек, а затем масштабирует его до заполнения экрана. Это часто приводит к таким артефактам, как размытие и пикселизация пользовательского интерфейса.
Дополнительные сведения о том, как правильно поддерживать разные размеры экрана, чтобы избежать использования режима совместимости экрана с вашим приложением, см. в разделе Обзор совместимости экрана .
- атрибуты:
-
android:resizeable
- Указывает, можно ли изменить размер приложения для разных размеров экрана. По умолчанию этот атрибут имеет значение
"true"
. Если установлено значение"false"
, система запускает ваше приложение в режиме совместимости экранов на больших экранах.Этот атрибут устарел . Он был введен, чтобы помочь приложениям перейти с Android 1.5 на 1.6, когда впервые была представлена поддержка нескольких экранов. Не используйте это.
-
android:smallScreens
- Указывает, поддерживает ли приложение «маленькие» экранные форм-факторы. Маленький экран определяется как экран с меньшим соотношением сторон, чем «обычный» экран или традиционный экран HVGA. Приложение, не поддерживающее маленькие экраны , недоступно для устройств с маленькими экранами из внешних сервисов, таких как Google Play, поскольку платформа мало что может сделать, чтобы такое приложение работало на меньшем экране. По умолчанию это
"true"
. -
android:normalScreens
- Указывает, поддерживает ли приложение «нормальные» форм-факторы экрана. Традиционно это экран HVGA средней плотности, но нормальными также считаются WQVGA низкой плотности и WVGA высокой плотности. По умолчанию этот атрибут имеет значение
"true"
. -
android:largeScreens
- Указывает, поддерживает ли приложение форм-фактор «большого» экрана. Большой экран определяется как экран, который значительно больше, чем «обычный» экран мобильного телефона. Таким образом, для эффективного использования приложения может потребоваться особая осторожность со стороны приложения, хотя оно может полагаться на изменение размера системой для заполнения экрана.
Значение по умолчанию для этого атрибута варьируется в разных версиях, поэтому лучше явно объявить этот атрибут. Помните, что установка значения
"false"
обычно включает режим совместимости экрана . -
android:xlargeScreens
- Указывает, поддерживает ли приложение форм-факторы «сверхбольших» экранов. Очень большой экран определяется как экран, который значительно больше, чем «большой» экран, например, планшета или чего-то еще большего. Чтобы эффективно использовать его, со стороны приложения может потребоваться особая осторожность, хотя оно может полагаться на изменение размера системой для заполнения экрана.
Значение по умолчанию для этого атрибута варьируется в разных версиях, поэтому лучше явно объявить этот атрибут. Помните, что установка значения
"false"
обычно включает режим совместимости экрана .Этот атрибут был введен в API уровня 9.
-
android:anyDensity
- Указывает, включает ли приложение ресурсы для поддержки любой плотности экрана.
Для приложений, поддерживающих Android 1.6 (уровень API 4) и выше, по умолчанию это значение
"true"
. Не устанавливайте значение"false"
, если вы не абсолютно уверены, что это необходимо для работы вашего приложения. Единственный раз, когда может потребоваться отключить это, — это если ваше приложение напрямую манипулирует растровыми изображениями. Дополнительную информацию см. в обзоре совместимости экранов . -
android:requiresSmallestWidthDp
- Указывает минимальную
smallestWidth
необходимую для приложения.smallestWidth
— это кратчайший размер экранного пространства в единицахdp
, который должен быть доступен пользовательскому интерфейсу вашего приложения. То есть это самый короткий из двух доступных размеров экрана.Чтобы устройство считалось совместимым с вашим приложением,
smallestWidth
устройства должна быть равна этому значению или превышать его. Обычно значение, которое вы указываете для этого, — это «наименьшая ширина», которую поддерживает ваш макет, независимо от текущей ориентации экрана.Например, типичный экран телефона имеет
smallestWidth
320 dp, 7-дюймовый планшет имеетsmallestWidth
600 dp, а 10-дюймовый планшет имеетsmallestWidth
720 dp. Эти значения обычно представляют собойsmallestWidth
поскольку они представляют собой самый короткий размер доступного пространства экрана.Размер, с которым сравнивается ваше значение, учитывает оформление экрана и пользовательский интерфейс системы. Например, если на дисплее устройства есть некоторые постоянные элементы пользовательского интерфейса, система объявляет
smallestWidth
устройства как меньшую, чем фактический размер экрана, поскольку это пиксели экрана, недоступные для вашего пользовательского интерфейса.Если ваше приложение корректно изменяет размер для экранов меньшего размера, вплоть до «маленького» размера или минимальной ширины 320 dp, вам не нужно использовать этот атрибут. В противном случае используйте для этого атрибута значение, соответствующее наименьшему значению, используемому вашим приложением для квалификатора наименьшей ширины экрана (
sw<N>dp
).Внимание: система Android не обращает внимания на этот атрибут, поэтому он не влияет на поведение вашего приложения во время выполнения. Вместо этого он используется для включения фильтрации вашего приложения в таких сервисах, как Google Play. Однако Google Play в настоящее время не поддерживает этот атрибут для фильтрации на Android 3.2, поэтому продолжайте использовать другие атрибуты размера, если ваше приложение не поддерживает маленькие экраны.
Этот атрибут был введен на уровне API 13.
-
android:compatibleWidthLimitDp
- Этот атрибут позволяет включить режим совместимости экрана в качестве дополнительной функции, указав максимальную «наименьшую ширину экрана», для которой разработано ваше приложение. Если наименьшая сторона доступного экрана устройства превышает указанное здесь значение, пользователи все равно смогут установить ваше приложение, но им будет предложено запустить его в режиме совместимости экранов.
По умолчанию режим совместимости экрана отключен, и размер макета изменяется в соответствии с размером экрана, как обычно. На системной панели доступна кнопка, позволяющая пользователю переключать режим совместимости экрана.
Если ваше приложение совместимо со всеми размерами экрана и его макет корректно изменяется, вам не нужно использовать этот атрибут.
Примечание. В настоящее время режим совместимости экрана эмулирует только экраны мобильных телефонов с шириной 320 dp, поэтому режим совместимости экрана не применяется, если значение
android:compatibleWidthLimitDp
больше320
.Этот атрибут был введен на уровне API 13.
-
android:largestWidthLimitDp
- Этот атрибут позволяет принудительно включить режим совместимости экрана, указав максимальную «наименьшую ширину экрана», для которой разработано ваше приложение. Если наименьшая сторона доступного экрана устройства больше указанного здесь значения, приложение запускается в режиме совместимости экрана, и пользователь не может его отключить.
Если ваше приложение совместимо со всеми размерами экрана и его макет корректно изменяется, вам не нужно использовать этот атрибут. В противном случае сначала рассмотрите возможность использования атрибута
android:compatibleWidthLimitDp
. Используйте атрибутandroid:largestWidthLimitDp
только в том случае, если ваше приложение функционально нарушено при изменении размера для больших экранов, а режим совместимости экранов — единственный способ использования вашего приложения.Примечание. В настоящее время режим совместимости экрана эмулирует только экраны мобильных телефонов с шириной 320 точек, поэтому режим совместимости экрана не применяется, если значение
android:largestWidthLimitDp
больше320
.Этот атрибут был введен на уровне API 13.
-
- представлено в:
- API уровня 4
- см. также:
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2024-08-20 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Отсутствует нужная мне информация"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Слишком сложен/слишком много шагов"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Устарел"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Проблема с переводом текста"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Проблемы образцов/кода"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Другое"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Прост для понимания"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Помог мне решить мою проблему"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Другое"
}]
{
"last_modified": "Последнее обновление: 2024-08-20 UTC.",
"state": ""
}