На этой странице определены следующие типы ресурсов, которые можно экстернализировать:
- Бул
- XML-ресурс, который несет логическое значение.
- Цвет
- Ресурс XML, содержащий значение цвета (шестнадцатеричный цвет).
- Измерение
- Ресурс XML, содержащий значение измерения (с единицей измерения).
- ИДЕНТИФИКАТОР
- Ресурс XML, предоставляющий уникальный идентификатор ресурсов и компонентов приложения.
- Целое число
- XML-ресурс, который содержит целочисленное значение.
- Целочисленный массив
- XML-ресурс, предоставляющий массив целых чисел.
- Типизированный массив
-  Ресурс XML, предоставляющий TypedArray(который можно использовать для массива объектов рисования).
Бул
Логическое значение, определенное в XML.
 Примечание. Логическое значение — это простой ресурс, ссылка на который осуществляется с использованием значения, указанного в атрибуте name , а не имени XML-файла. Таким образом, вы можете комбинировать ресурсы bool с другими простыми ресурсами в одном XML-файле в одном элементе <resources> .
- расположение файла:
-  res/values/ filename .xml
 Имя файла произвольное.nameэлемента<bool>используется в качестве идентификатора ресурса.
- ссылка на ресурс:
-  На Java: R.bool. bool_name
 В XML:@[ package :]bool/ bool_name
- синтаксис:
- <?xml version="1.0" encoding="utf-8"?> <resources> <bool name="bool_name" >[true | false]</bool> </resources> 
- элементы:
- пример:
-  XML-файл, сохраненный в res/values-small/bools.xml:<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="screen_small">true</bool> <bool name="adjust_view_bounds">true</bool> </resources> Следующий код приложения извлекает логическое значение: Котлинval screenIsSmall: Boolean = resources.getBoolean(R.bool.screen_small)ЯваResources res = getResources(); boolean screenIsSmall = res.getBoolean(R.bool.screen_small);Следующий XML макета использует логическое значение для атрибута: <ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:src="@drawable/logo" android:adjustViewBounds="@bool/adjust_view_bounds" /> 
Цвет
 Значение цвета, определенное в XML. Цвет задается с использованием значения RGB и альфа-канала. Вы можете использовать ресурс цвета в любом месте, где принимается шестнадцатеричное значение цвета. Вы также можете использовать ресурс цвета, если в XML ожидается рисуемый ресурс, например android:drawable="@color/green" .
Значение всегда начинается с символа решетки (#), за которым следует информация Alpha-Red-Green-Blue в одном из следующих форматов:
- # RGB
- # АРГБ
- # РРГГББ
- # ААРРГГББ
 Примечание. Цвет — это простой ресурс, ссылка на который осуществляется с использованием значения, указанного в атрибуте name , а не имени XML-файла. Таким образом, вы можете комбинировать ресурсы цвета с другими простыми ресурсами в одном XML-файле в одном элементе <resources> .
- расположение файла:
-  res/values/colors.xml
 Имя файла произвольное.nameэлемента<color>используется в качестве идентификатора ресурса.
- ссылка на ресурс:
-  На Java: R.color. color_name
 В XML:@[ package :]color/ color_name
- синтаксис:
- <?xml version="1.0" encoding="utf-8"?> <resources> <color name="color_name" >hex_color</color> </resources> 
- элементы:
- пример:
-  XML-файл, сохраненный в res/values/colors.xml:<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <color name="translucent_red">#80ff0000</color> </resources> Следующий код приложения извлекает ресурс цвета: Котлинval color: Int = resources.getColor(R.color.opaque_red)ЯваResources res = getResources(); int color = res.getColor(R.color.opaque_red);Следующий XML-код макета применяет цвет к атрибуту: <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/> 
Измерение
Значение измерения, определенное в XML. Размер указывается числом, за которым следует единица измерения, например 10 пикселей, 2 дюйма или 5 сп. Android поддерживает следующие единицы измерения:
-  dp
-  Независимые от плотности пиксели: абстрактная единица, основанная на физической плотности экрана. Эти единицы относятся к экрану с разрешением 160 точек на дюйм (точек на дюйм), на котором 1 dp примерно равен 1 пикселю. При работе на экране с более высокой плотностью количество пикселей, используемых для рисования 1 dpi, увеличивается на коэффициент, соответствующий разрешению экрана.Аналогично, на экране с меньшей плотностью количество пикселей, используемых для 1 dp, уменьшается. Соотношение dps к пикселям меняется в зависимости от плотности экрана, но не обязательно прямо пропорционально. Использование единиц dp вместо единиц px — это решение, позволяющее правильно изменять размеры представления в макете для различной плотности экрана. Он обеспечивает согласованность реальных размеров элементов пользовательского интерфейса на разных устройствах. 
-  sp
- Независимые от масштаба пиксели. Это похоже на единицу измерения dp, но она также масштабируется в соответствии с предпочтениями пользователя по размеру шрифта. Рекомендуется использовать эту единицу измерения при указании размеров шрифта, чтобы они были скорректированы как с учетом плотности экрана, так и с учетом предпочтений пользователя.
-  pt
- Баллы: 1/72 дюйма в зависимости от физического размера экрана при разрешении экрана 72 точки на дюйм.
-  px
- Пиксели: соответствует реальным пикселям на экране. Мы не рекомендуем использовать это устройство, поскольку фактическое представление может различаться на разных устройствах. Различные устройства могут иметь разное количество пикселей на дюйм и могут иметь больше или меньше общего количества пикселей на экране.
-  mm
- Миллиметры: в зависимости от физического размера экрана.
-  in
- Дюймы: в зависимости от физического размера экрана.
 Примечание. Измерение — это простой ресурс, ссылка на который осуществляется с помощью значения, указанного в атрибуте name , а не имени XML-файла. Таким образом, вы можете комбинировать ресурсы измерений с другими простыми ресурсами в одном XML-файле в одном элементе <resources> .
- расположение файла:
-  res/values/ filename .xml
 Имя файла произвольное.nameэлемента<dimen>используется в качестве идентификатора ресурса.
- ссылка на ресурс:
-  На Java: R.dimen. dimension_name
 В XML:@[ package :]dimen/ dimension_name
- синтаксис:
- <?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="dimension_name" >dimension</dimen> </resources> 
- элементы:
- пример:
-  XML-файл, сохраненный в res/values/dimens.xml:<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="textview_height">25dp</dimen> <dimen name="textview_width">150dp</dimen> <dimen name="ball_radius">30dp</dimen> <dimen name="font_size">16sp</dimen> </resources> Следующий код приложения извлекает измерение: Котлинval fontSize: Float = resources.getDimension(R.dimen.font_size)ЯваResources res = getResources(); float fontSize = res.getDimension(R.dimen.font_size);Следующий XML-код макета применяет измерения к атрибутам: <TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/> 
ИДЕНТИФИКАТОР
 Уникальный идентификатор ресурса, определенный в XML. Используя имя, указанное вами в элементе <item> , инструменты разработчика Android создают уникальное целое число в классе R.java вашего проекта, которое вы можете использовать в качестве идентификатора ресурсов приложения, например View в макете пользовательского интерфейса или уникальное целое число для использования в коде вашего приложения, например идентификатор диалога или код результата.
 Примечание. Идентификатор — это простой ресурс, ссылка на который осуществляется с использованием значения, указанного в атрибуте name , а не имени XML-файла. Таким образом, вы можете комбинировать ресурсы идентификаторов с другими простыми ресурсами в одном XML-файле в одном элементе <resources> . Кроме того, идентификатор ресурса не ссылается на реальный элемент ресурса: это уникальный идентификатор, который вы можете прикрепить к другим ресурсам или использовать в качестве уникального целого числа в своем приложении.
- расположение файла:
-  res/values/ filename.xml
 Имя файла произвольное.
- ссылка на ресурс:
-  На Java: R.id. name
 В XML:@[ package :]id/ name
- синтаксис:
- <?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="id_name" /> </resources> 
- элементы:
- пример:
- XML-файл, сохраненный в - res/values/ids.xml:- <?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="button_ok" /> <item type="id" name="dialog_exit" /> </resources> - В следующем фрагменте макета для виджета « - Button» используется идентификатор- "button_ok":- <Button android:id="@id/button_ok" style="@style/button_style" /> - Значение - android:idздесь не включает знак плюса в ссылке на идентификатор, поскольку идентификатор уже существует, как определено в предыдущем примере- ids.xml. Когда вы указываете идентификатор XML-ресурса с помощью знака плюс в формате- android:id="@+id/name", это означает, что идентификатор- "name"еще не существует и он создается.- В качестве другого примера, следующий фрагмент кода использует идентификатор - "dialog_exit"в качестве уникального идентификатора диалога:- Котлин- showDialog(R.id.dialog_exit)- Ява- showDialog(R.id.dialog_exit);- В этом же приложении при создании диалога сравнивается идентификатор - "dialog_exit":- Котлин- override fun - onCreateDialog(id: Int): Dialog? { return when(id) { R.id.dialog_exit -> { ... } else -> { null } } }- Ява- protected Dialog - onCreateDialog(int id) { Dialog dialog; switch(id) { case R.id.dialog_exit: ... break; default: dialog = null; } return dialog; }
Целое число
Целое число, определенное в XML.
 Примечание. Целое число — это простой ресурс, ссылка на который осуществляется с использованием значения, указанного в атрибуте name , а не имени XML-файла. Таким образом, вы можете комбинировать целочисленные ресурсы с другими простыми ресурсами в одном XML-файле в одном элементе <resources> .
- расположение файла:
-  res/values/ filename.xml
 Имя файла произвольное.nameэлемента<integer>используется в качестве идентификатора ресурса.
- ссылка на ресурс:
-  В Java: R.integer. integer_name
 В XML:@[ package :]integer/ integer_name
- синтаксис:
- <?xml version="1.0" encoding="utf-8"?> <resources> <integer name="integer_name" >integer</integer> </resources> 
- элементы:
- пример:
- XML-файл, сохраненный в - res/values/integers.xml:- <?xml version="1.0" encoding="utf-8"?> <resources> <integer name="max_speed">75</integer> <integer name="min_speed">5</integer> </resources> - Следующий код приложения извлекает целое число: - Котлин- val maxSpeed: Int = - resources.- getInteger(R.integer.max_speed)- Ява- Resources res = - getResources(); int maxSpeed = res.- getInteger(R.integer.max_speed);
Целочисленный массив
Массив целых чисел, определенный в XML.
 Примечание. Целочисленный массив — это простой ресурс, ссылка на который осуществляется с использованием значения, указанного в атрибуте name , а не имени XML-файла. Таким образом, вы можете комбинировать ресурсы целочисленного массива с другими простыми ресурсами в одном XML-файле в одном элементе <resources> .
- расположение файла:
-  res/values/ filename .xml
 Имя файла произвольное.nameэлемента<integer-array>используется в качестве идентификатора ресурса.
- тип данных скомпилированного ресурса:
- Указатель ресурса на массив целых чисел.
- ссылка на ресурс:
-  В Java: R.array. integer_array_name
 В XML:@[ package :]array/ integer_array_name
- синтаксис:
- <?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="integer_array_name"> <item >integer</item> </integer-array> </resources> 
- элементы:
- пример:
-  XML-файл, сохраненный в res/values/integers.xml:<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="bits"> <item>4</item> <item>8</item> <item>16</item> <item>32</item> </integer-array> </resources> Следующий код приложения извлекает целочисленный массив: Котлинval bits: IntArray = resources.getIntArray(R.array.bits)ЯваResources res = getResources(); int[] bits = res.getIntArray(R.array.bits);
Типизированный массив
 TypedArray определенный в XML. Вы можете использовать это для создания массива других ресурсов, таких как drawables. Массив не обязательно должен быть однородным, поэтому вы можете создать массив из смешанных типов ресурсов, но помните, какие и где типы данных находятся в массиве, чтобы вы могли правильно получить каждый элемент с помощью get.. класса TypedArray get...() методы.
 Примечание. Типизированный массив — это простой ресурс, ссылка на который осуществляется с использованием значения, указанного в атрибуте name , а не имени XML-файла. Таким образом, вы можете комбинировать ресурсы типизированного массива с другими простыми ресурсами в одном XML-файле в одном элементе <resources> .
- расположение файла:
-  res/values/ filename .xml
 Имя файла произвольное.nameэлемента<array>используется в качестве идентификатора ресурса.
- тип данных скомпилированного ресурса:
-  Указатель ресурса на TypedArray.
- ссылка на ресурс:
-  В Java: R.array. array_name
 В XML:@[ package :]array/ array_name
- синтаксис:
- <?xml version="1.0" encoding="utf-8"?> <resources> <array name="integer_array_name"> <item>resource</item> </array> </resources> 
- элементы:
- пример:
-  XML-файл, сохраненный в res/values/arrays.xml:<?xml version="1.0" encoding="utf-8"?> <resources> <array name="icons"> <item>@drawable/home</item> <item>@drawable/settings</item> <item>@drawable/logout</item> </array> <array name="colors"> <item>#FFFF0000</item> <item>#FF00FF00</item> <item>#FF0000FF</item> </array> </resources> Следующий код приложения извлекает каждый массив, а затем получает первую запись в каждом массиве: Котлинval icons: TypedArray = resources.obtainTypedArray(R.array.icons) val drawable: Drawable = icons.getDrawable(0) val colors: TypedArray =resources.obtainTypedArray(R.array.colors) val color: Int = colors.getColor(0,0)ЯваResources res = getResources(); TypedArray icons = res.obtainTypedArray(R.array.icons); Drawable drawable = icons.getDrawable(0); TypedArray colors = res.obtainTypedArray(R.array.colors); int color = colors.getColor(0,0);
