Создание псевдонимов ресурсов
Если у вас есть ресурс, который вы хотите использовать для более чем одной конфигурации устройства (но не для всех конфигураций), вам не нужно размещать один и тот же ресурс в каждом альтернативном каталоге ресурсов. Вместо этого вы можете (в некоторых случаях) создать альтернативный ресурс, который действует как псевдоним для ресурса, сохраненного в каталоге ресурсов по умолчанию.
Примечание: Не все ресурсы предлагают механизм, с помощью которого вы можете создать псевдоним для другого ресурса. В частности, анимация, меню, сырые и другие неопределенные ресурсы в каталоге xml/
не предоставляют эту функцию.
Например, представьте, что у вас есть значок приложения, icon.png
, и вам нужна его уникальная версия для разных локалей. Тем не менее, два языка, английский-канадский и французско-канадский, должны использовать одну и ту же версию. Вы можете предположить, что вам нужно скопировать одно и то же изображение в каталог ресурсов для англо-канадского и франко-канадского языков, но это не так. Вместо этого вы можете сохранить изображение, которое используется для обоих icon_ca.png
(любое имя, отличное от icon.png
) и поместить его в каталог res/drawable/
по умолчанию. Затем создайте файл icon.xml
в res/drawable-en-rCA/
и res/drawable-fr-rCA/
, который ссылается на ресурс icon_ca.png
, используя элемент <bitmap>
. Это позволяет хранить только одну версию PNG-файла и два небольших XML-файла, которые указывают на него. (Пример XML-файла показан ниже.)
Drawable
Чтобы создать псевдоним для существующего чертежа, используйте элемент <bitmap>
. Например:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/icon_ca" />
Если вы сохраните этот файл как icon.xml
(в альтернативном каталоге ресурсов, например res/drawable-en-rCA/
), он будет скомпилирован в ресурс, на который вы можете ссылаться как R.drawable.icon
, но на самом деле это псевдоним для R.drawable.icon_ca
ресурс (который сохраняется в res/drawable/
).
Однако вам не нужно создавать псевдонимы, если у вас просто разные значки для разных плотностей экрана. Квалификаторы каталога ресурсов, показанные в таблице, на которую вы ссылаетесь : ldpi
, mdpi
и hdpi
. Квалификаторы используются при поиске альтернативных ресурсов (выделение добавлено):
Спецификатор hdpi
указывает, что ресурсы в этом каталоге предназначены для устройств с экраном высокой плотности. Хотя изображения в каждом каталоге для рисования имеют размер, соответствующий определенной плотности экрана, имена файлов совпадают. Таким образом, идентификатор ресурса, который вы используете для ссылки на изображение icon.png
или background.png
, всегда один и тот же, но Android выбирает версию этого чертежа, которая лучше всего соответствует текущей конфигурации устройства .