Ресурсы и изменения конфигурации

Ресурсы и изменения конфигурации

Ресурсы облегчают локализацию. Например, можно работать со строковым значением, которое изменяется в зависимости от языковой локали пользователя. Ресурсы Android обобщают эту идею на любую конфигурацию устройства, где язык является лишь одним из параметров конфигурации. Другим примером переменной конфигурации является поворот устройства из вертикального в горизонтальное положение. Вертикальное положение называется портретным режимом, а горизонтальное — пейзажным режимом.

Android позволяет выбирать для одного и того же идентификатора ресурса различные наборы компоновок в зависимости от режима компоновки. Это делается с помощью различных каталогов для каждой конфигурации. Пример показан в листинге 3.36.

Листинг 3.36. Альтернативные каталоги ресурсов

\res\layout\main layout.xml \res\layout-port\main layout.xml \res\layout-land\main layout.xml

Здесь указаны три отдельных файла компоновок, но в файле R.java для них генерируется лишь один идентификатор компоновки. Этот идентификатор имеет следующий вид:

R.layout.main layout

При выборке компоновки, соответствующей данному идентификатору компоновки, будет получена как раз компоновка, нужная для данного устройства.

В этом примере расширения в имени каталога -port и -land называются квалификаторами конфигурации (configuration qualifier). Такие квалификаторы не чувствительны к регистру символов и отделяются от имени каталога ресурса дефисом. Ресурсы, описанные в уточненных подобным образом каталогах конфигураций, называются альтернативными ресурсами, а ресурсы в ресурсных каталогах без квалификаторов — ресурсами по умолчанию.

Ниже перечислено большинство квалификаторов конфигурации. Обратите внимание, что с появлением более новых API-интерфейсов могут быть добавлены новые квалификаторы. Актуальный набор квалификаторов ресурсов доступен по URL-адресу, указанному в разделе “Ссылки”.

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий