Ресурси і чарівний r.java

android

Ресурси проекту і R.java дуже близько пов`язані.

ресурси

Ресурси - зовнішні файли (НЕ код), які використовуються Вашим кодом, закомпіліровани в Ваша програма і вбудовуються в нього під час роботи. Андроїд підтримує багато різні види файлів ресурсів, включаючи XML, PNG і JPEG. Файли XML мають сильно розрізняються формати в залежності від того, що вони описують. Ресурси описані в вихідному коді, і файли XML відкомпільовані в двійковий код для швидкої і ефективної завантаження. Рядки стиснуті в більш форму, більш заощаджують пам`ять.

Відео: Java 9: ​​Урок 8: Зміни в try з ресурсами

список ресурсів

Типи ресурсів і їх місце розташування:

- layout-файли - "/ res / layout /".

- зображення - "/ res / drawable /".

- анімація - "/ res / anim /".

- стилі, рядки і масиви - "/ res / values ​​/".

  - Назви не можуть відрізнятися:

  - `Arrays.xml` для визначення масивів.

  - `Colors.xml` для визначення кольорів.

  - #RGB, #ARGB, #RRGGBB, #AARRGGBB

  - `Dimens.xml` для визначення розмірів (dimensions).

  - `Strings.xml` для визначення рядків.

  - `Styles.xml` для визначення стилів об`єктів.

- необроблені файли на зразок mp3 або відео - "/ res / raw /"

Використання ресурсів в коді

Для використання ресурсу в коді потрібно знати тільки повний ID ресурсу і в який тип об`єкта Ваш ресурс був откомпилирован. Ось синтаксис звернення до ресурсу:

R.resource_type.resource_nameт або android.R.resource_type.resource_name

resource_type - підклас R, який містить певний тип ресурсу. resource_name - атрибут ресурсів, певний в файлах XML, або ім`я файлу (без розширення) для ресурсу, визначених іншими типами файлу. Кожен тип ресурсу буде додано до підклас R, в залежності від його типу.




Ресурси, відкомпілювалися Вашим додатком, можуть бути використані без назви пакета (просто як R.resource_type.resource_name). Андроїд містить багато стандартних ресурси, такі як стилі екрану і фони кнопки. Звертатися до них в коді Ви можете через android.R.resource_type.resource_name, для прикладу: android.R.drawable.button_background.

Посилання на Ресурси

Значення в атрибуті або ресурсі може також бути посиланням на інший ресурс. Це часто використовується в layout файлах, щоб зберігати рядки (таким чином можна локалізувати додаток) і зображення (що знаходяться в іншому файлі), хоча посилання може бути на будь-який тип ресурсу, включаючи кольори і числа.

Відео: Урок по Java 92: Які книги треба читати що б стати Java програмістом

Наприклад, якщо у нас є ресурси з квітами, ми можемо написати layout файл, який встановить колір тексту на значення, що міститься в одному з ресурсів:

  android: layout_width = "fill_parent"

  android: layout_height = "fill_parent"

  android: textColor = "@ color / opaque_red"

  android: text = "Hello, World!" / Gt;

Зверніть увагу на префікс "@", який показує, що це - посилання на ресурс, текст після нього - назва ресурсу в формі @ [пакет:] тип / ім`я. У прикладі ми не визначаємо пакет, тому що посилаємося на ресурс в нашому власному пакеті. Щоб послатися на системний ресурс, Ви повинні були б написати:

  android: layout_width = "fill_parent"

  android: layout_height = "fill_parent"




  android: textColor = "@ android: color / opaque_red"

  android: text = "Hello, World!" / Gt;

У наступному прикладі, ми використовуємо посилання на ресурс, зберігаючи рядки в layout файлі так, щоб вони могли бути локалізовані:

  android: layout_width = "fill_parent"

  android: layout_height = "fill_parent"

  android: textColor = "@ android: color / opaque_red"

  android: text = "@ string / hello_world" / gt;

альтернативні Ресурси локалізація

Альтернативні Ресурси і Локалізація - серйозна проблема, досить добре вирішена в Андроїд. Зазвичай найчастіше Ви повинні були б проектувати UI, добре підходить для кожного з можливих дозволів екрану одночасно, що майже неможливо.

Ви можете додавати в свій додаток різні UI, мови або підтримку пристроїв з різною конфігурацією хард-року.

Зауважте, що навіть якщо Ви додасте багато різних мов, UI і всіх інших ресурсів, SDK сам визначить набір ресурсів, який буде використовуватися. Наприклад, Андроїд сам здогадається, де яка мова Вам потрібен і вибере його. Або UI. Щоб включати додаткові ресурси, створіть паралельні папки з ресурсами і до кожного назвою через рисочку додайте параметр (специфікатор), куди ця папка відноситься (мова, орієнтація екрану, точки на дюйм, дозвіл, ...). Ось, наприклад, у цього проекту є англійська та німецька локалізація (тут тільки рядки):

Відео: [ВИРІШЕНО] Чому не працюють текстури в Minecraft?

MyApp /

  res /

  values-en /

 strings.xml

  values-de /

 strings.xml

Андроїд підтримує кілька типів специфікаторів, з різними значеннями для кожного. Додайте їх кінця назви папки ресурсу, відокремивши від назви рискою. Ви можете додати багато специфікаторів, відокремлюючи їх один від одного рисками. Наприклад, папка, що містить drawable ресурси тільки для певної конфігурації:

MyApp /

      res /

            drawable-en-rUS-port-92dpi-finger-keyshidden-12key-dpad-480x320 /

Більш того, Ви можете визначити тільки кілька певних опцій конфігурації, для яких визначено ресурс.

MyApp /

  res /

 drawable-en-rUS-finger /

 drawable-port /

 drawable-port-160dpi /

  drawable-qwerty /

Андроїд вибере, який з різних основних файлів ресурсу підходить найкраще під час виконання, в залежності від поточної конфігурації пристрою.

Відео: Мультик про Барбі. Життя в будинку мрії 1-10 серії

чарівний R.java

R.java проекту - автоматично згенерований файл, що індексує всі ресурси Вашого проекту. Ви використовуєте цей клас в своєму початковому тексті як свого роду спосіб звернутися до ресурсів, які ви включили в свій проект. Це особливо важливо, враховуючи особливості інтегрованих середовищ розробки, тому що дозволяє швидко і в інтерактивному режимі визначати місцезнаходження певної інформації, яку Ви шукаєте. Додатково під час компіляції Ви отримуєте впевненість, що ресурс, який Ви хочете використовувати, дійсно існує.

Поділися в соціальних мережах:

Схожі
GamekillerGamekiller
Команда del (erase)Команда del (erase)
Як перевести apk додатки андроїд на російську мовуЯк перевести apk додатки андроїд на російську мову
Layout from instagramLayout from instagram
Інсталяція виконана, давайте писати кодІнсталяція виконана, давайте писати код
Інструкція по установці java development kit (jdk)Інструкція по установці java development kit (jdk)
Що таке odex і deodex в androidЩо таке odex і deodex в android
Масиви bashМасиви bash
Позиціонування відвідувача на jаvascriptПозиціонування відвідувача на jаvascript
Браузер google chrome став ефективніше використовувати системні ресурсиБраузер google chrome став ефективніше використовувати системні ресурси
» » Ресурси і чарівний r.java