Главная » Разработка для Android » Вложенные ресурсы

0

Можно использовать ссылки на ресурсы в качестве значений для атри- бутов внутри  других ресурсов, особенно в случае с разметкой  и стилями, поскольку это позволяет создавать специальные варианты визуальных тем, локализованных строк и графических объектов. Такой  подход также по- могает при оптимизации различных изображений и разделителей внутри разметки  для экранов с разными размерами  и разрешениями.

Чтобы сослаться на один ресурс внутри другого, используйте символ @

и запись следующего вида:

attribute="@[packagename:]resourcetype/resourceidentifier"

ПРИМЕЧАНИЕ

Android предполагает, что вы используете ресурсы из пакета со своим приложением, поэтому полное имя необходимо указывать только для сторонних пакетов.

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

Листинг 3.4. Использование ресурсов внутри разметки

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent"

Продолжение ?

Листинг 3.4 (продолжение)

android:layout_height="fill_parent" android:padding="@dimen/standard_border">

<EditText android:id="@+id/myEditText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/stop_message" android:textColor="@color/opaque_blue"

/>

</LinearLayout>

Использование системных ресурсов

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

Получение доступа к системным ресурсам внутри кода программы ничем не отличается от того, который был описан в предыдущем разделе. Разница лишь в том, что вместо прикладного класса R вам необходимо задействовать системный класс android.R. В следующем фрагменте кода с помощью метода getString, принадлежащего контексту приложения, извлекается сообщение об ошибке, хранящееся  в системных ресурсах:

CharSequence httpError = getString(android.R.string.httpErrorBadUrl);

Чтобы получить доступ к системным ресурсам внутри XML-файла, укажите в качестве пакета значение android:

<EditText android:id="@+id/myEditText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@android:string/httpErrorBadUrl" android:textColor="@android:color/darker_gray"

/>

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии