Ресурсы Android

В этой статье представлена концепция ресурсов Android в Xamarin.Android и описана их использование. В нем описывается, как использовать ресурсы в приложении Android для поддержки локализации приложений и нескольких устройств, включая различные размеры экрана и плотности экрана.

Обзор

Приложение Android редко является исходным кодом. Часто существует множество других файлов, составляющих приложение: видео, изображения, шрифты и аудиофайлы только для названия нескольких. В совокупности эти файлы, не являющиеся исходным кодом, называются ресурсами и компилируются (вместе с исходным кодом) во время процесса сборки и упаковываются в виде APK для распространения и установки на устройствах:

Packaging diagram

Ресурсы предлагают несколько преимуществ для приложения Android:

  • Разделение кода — отделяет исходный код от изображений, строк, меню, анимации, цветов и т. д. Так как такие ресурсы могут значительно помочь при локализации.

  • Назначение нескольких устройств — обеспечивает более простую поддержку различных конфигураций устройств без изменений кода.

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

При запуске нового проекта Xamarin.Android создается специальный каталог с именем Resources, а также некоторые подкаталогы:

Resources folder and contents

На приведенном выше изображении ресурсы приложения упорядочены в соответствии с их типом в эти подкаталогы: изображения будут идти в каталоге с возможностью рисования; представления идут в подкаталоге макета и т. д.

Существует два способа доступа к этим ресурсам в приложении Xamarin.Android: программно в коде и декларативно в XML с помощью специального синтаксиса XML.

Эти ресурсы называются ресурсами по умолчанию и используются всеми устройствами, если не указано более конкретное совпадение. Кроме того, каждый тип ресурса может дополнительно иметь альтернативные ресурсы , которые Android может использовать для целевых устройств. Например, ресурсы могут быть предоставлены для целевого языкового стандарта пользователя, размера экрана или если устройство поворачивается на 90 градусов от книжного до альбомного и т. д. В каждом из этих случаев Android загружает ресурсы для использования приложением без дополнительных усилий разработчика.

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

Например, resources/drawable-de укажите изображения для устройств, установленных на немецком языковом стандарте, а ресурсы и рисуемые фре будут содержать изображения для устройств, установленных на французском языковом стандарте. Пример предоставления альтернативных ресурсов можно увидеть на рисунке ниже, где выполняется то же приложение с изменением языкового стандарта устройства:

Example screens for different locales

В этой статье рассматривается использование ресурсов и рассматриваются следующие разделы:

  • Основы ресурсов Android— программное и декларативное использование ресурсов по умолчанию, добавление таких типов ресурсов, как изображения и шрифты в приложение.

  • Конкретные конфигурации устройства— поддержка различных разрешений экрана и плотностей в приложении.

  • Локализация . Использование ресурсов для поддержки различных регионов, которые могут использоваться приложением.