Папка res android studio

Android | папка res / values

Папка res / values используется для хранения значений ресурсов, которые используются во многих проектах Android для включения функций цвета, стилей, размеров и т. Д.

Ниже поясняется несколько основных файлов, содержащихся в папке res / values:

    colors.xml : colors.xml — это файл XML, который используется для хранения цветов для ресурсов.

Проект Android содержит 3 основных цвета, а именно:

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

Ниже упоминается реализация ресурса colors.xml:

«1.0» encoding= «utf-8» ?>

Примечание. Также возможно определить разные пользовательские цвета для разных типов ресурсов.

Dimens.xml : Dimens.xml используется для определения размеров для разных виджетов, которые будут включены в проект Android. Хорошей практикой кодирования является использование измерениеs.xml для определения измерения, а не просто запись измерения в ресурсе, поскольку в случае необходимости возникает необходимость изменить измерение, а не вносить изменения во все, только Dimens.xml может быть изменен один раз, и изменение отражается во всех.
Ниже упоминается реализация ресурса измерения. Xml:

Также возможно применять определяемые пользователем размеры.
Примечание: всегда помните разницу в использовании dp или sp. Обычно используйте sp для размера шрифта и dp для других.

strings.xml : один из наиболее важных и широко используемых файлов значений — это strings.xml из-за его применимости в проекте Android. Основная функция strings.xml состоит в том, чтобы определять строки в одном файле, чтобы легко использовать одну и ту же строку в разных позициях в проекте Android, а также сделать проект менее запутанным.
Мы также можем определить массив в этом файле.
Ниже упоминается реализация ресурса strings.xml:

«app_name» >Workshop app

«navigation_drawer_open» >Open navigation drawer

«navigation_drawer_close» >Close navigation drawer

«hello_blank_fragment» >Hello blank fragment

Студия Android выдает предупреждение в макете xmls, если в этом файле используется строка, поэтому рекомендуется хранить все жестко закодированные строки в файле strings.xml.

styles.xml : еще один важный файл в папке значений — это styles.xml, в котором определены все темы проекта Android. Базовая тема предоставляется по умолчанию с возможностью настройки или изменения настраиваемой темы. Каждая тема имеет родительский атрибут, который определяет основу темы. Есть много вариантов на выбор в зависимости от необходимости проекта Android.
Ниже упоминается реализация ресурса styles.xml:

«AppTheme.AppBarOverlay» parent= «ThemeOverlay.AppCompat.Dark.ActionBar»/>

«AppTheme.PopupOverlay» parent= «ThemeOverlay.AppCompat.Light»/>

Если какая-либо функция, используемая в файлах в папке значений, не совпадает с минимальной версией SDK пользователя, тогда Android Studio предоставляет возможность определить отдельный файл с тем же именем, но для другого уровня API. Например, стили и стили (v21) [для уровней API от 21 и выше].

Источник

Полный список

В этом уроке мы:

— узнаем, зачем нужна папка res/values, что в ней можно хранить и как использовать

В подпапках res хранятся различные ресурсы приложения. Мы уже отлично знаем про layout-файлы в папке res/layout. Я упоминал про папку res/drawable с density-суффиксами – в ней хранятся картинки. Теперь обратим внимание на папку res/values. Она предназначена для хранения ресурсов (констант) различных типов. Мы рассмотрим типы String и Color.

Читайте также:  Canon print business для android

Project name: P0111_ResValues
Build Target: Android 2.3.3
Application name: ResValues
Package name: ru.startandroid.develop.resvalues
Create Activity: MainActivity

Откроем файл res/values/strings.xml

Мы видим два элемента типа String:

hello – по умолчанию он использован в свойстве Text в TextView в main.xml. И соответственно TextView отображает значение этого элемента.

app_name – по умолчанию используется как заголовок для приложения и Activity. Это указывается в манифест-файле, который мы еще не разбирали.

На эти элементы можно кликнуть и увидеть справа, что они собой представляют: имя (Name) и значение (Value)

Name – это ID. Оно должно быть уникальным, и для него в R.java создается константа, чтобы мы могли иметь доступ к этому String-элементу.

Если мы посмотрим XML-содержимое файла strings.xml (вкладка снизу – аналогично как для main.xml), то видим, что там все прозрачно и просто. Попробуем и мы использовать ресурсы.

Для начала создадим такой экран в main.xml:

Экран разделен на две одинаковые половины, содержащие LinearLayout, Button и TextView. Для LinearLayout мы укажем фоновый цвет, а для TextView и Button – изменим текст. Реализуем это с помощью ресурсов. Причем View-элементы верхней части мы будем настраивать вручную через properties, а нижнюю часть попробуем настроить программно.

Давайте создадим свой файл с ресурсами в папке values, название пусть будет myres.

После создания открылся редактор файла. Добавлять элемент просто – жмем кнопку Add и выбираем тип, а справа пишем имя и значение. Создадим 4 String-элемента и 2 Color-элемента:

Для практики можете создать вручную, а можете просто вставить этот текст в содержимое myres.xml. Не забудьте сохранить. Заглянем в R.java, убедимся, что здесь все появилось:

Ок, ресурсы созданы, настроим View-элементы на их использование. Сначала верхние:

llTop – в Properties находим свойство Background, жмем кнопку выбора (три точки), в ветке Color выделяем llTopColor и жмем OK

tvTop – для свойства Text откройте окно выбора и найдите там tvTopText.

btnTop — для свойства Text откройте окно выбора и найдите там btnTopText.

Цвет верхней части изменился и тексты поменялись на те, что мы указывали в myres.xml.

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

Обратите внимание на то, что для смены текста используется метод setText. Только это не тот же setText, что мы использовали, когда задавали текст напрямую. Этот на вход принимает ID и мы используем R.java, который хранит ID всех наших ресурсов. Т.е. методы называются одинаково, но на вход принимают разные параметры. Это нормальное явление в Java.

Сохраняем, запускаем и проверяем. Теперь тексты и цвета взяты из файла ресурсов. Вы можете изменить содержимое myres.xml (например текст для верхней кнопки), сохранить, запустить приложение и увидите изменения.

Иногда необходимо в коде получить не ID ресурса, а его значение. Это делается следующим образом:

Выражение вернет текст «Нижний текст», соответствующий String-ресурсу с name = tvBottomText.

Напоследок скажу пару слов об организации файлов для хранения ресурсов. Мы сейчас создали String и Color ресурсы в одном файле myres.xml, но рекомендуется их разделять по разным файлам (например strings.xml, colors.xml . ), и в дальнейшем я буду следовать этой рекомендации. Для этого есть причины, позже мы в этом убедимся.

Читайте также:  Меню пуск для андроида

Имена ресурсов сквозные для всех файлов в папке res/values. Т.е. вы не можете в разных файлах создать ресурс с одним именем и типом.

Имена файлов ресурсов могут быть произвольными и файлов можно создавать сколько угодно. В R.java попадут все ресурсы из этих файлов.

На следующем уроке:

— рассмотрим логи приложения и всплывающие сообщения

Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме

Источник

Урок 3. Ресурсы папки res/values. Локализация. AndroidManifest

Код начала урока:

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

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

Ресурсы из папки res/values

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

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

Вот как выглядит наш проект. Нажмём на папку values и посмотрим, что в ней находится:

Видим три файла:

  • colors.xml – содержит в себе все цвета.
  • strings.xml – хранит все строковые ресурсы.
  • styles.xml – и все стили приложения.

Хранение таких данных в отдельных ресурсах дает нам гибкость и удобство при работе с проектом. Мы рассмотрим преимущества на примере локализации строковых ресурсов.

Локализация

Мы будем поддерживать два языка в нашем приложении: английский и русский. Для локализации приложения используют файл strings.xml . Туда помещается весь текст вашего приложения, который должен быть подвержен локализации. Чтобы добавить поддержку ещё одного языка, надо создать папку с именем values-language . Т.к. мы поддерживаем русский язык, то создадим папку values-ru .

Для этого нажмём правой кнопкой на папку res и выберем пункт New -> Android resource directory :

При создании директории у нас появится окно, в котором надо заполнить поля следующими значениями:

  • Directory name – values-ru
  • Resource type – values
  • Source set – main

Вот как это должно выглядеть:

После этого видим, что у нас создалась папка values-ru . Отлично, создадим новый файл strings.xml . Для этого нажимаем правой кнопкой по папке values-ru , выбираем New -> Values resource file :

Затем появится окно, в котором необходимо ввести имя файла. Вводим strings . И у нас создался файл, иконка которого выглядит в виде флага России.

Отлично. Теперь всё, что нам надо сделать – это добавлять ресурсы в эту папку с таким же именем, но значения мы будем писать на русском языке. Система автоматически будет брать значения из этого файла, если у пользователя на устройстве установлен русский язык.

Читайте также:  Игри для моего андроида

Для начала давайте посмотрим как выглядит обычный строковый ресурс:

У каждого строкового ресурса есть имя, по которому в дальнейшем будет идти обращение к нему, а также его значение. На самом деле так выглядят не только строковые ресурсы, а все ресурсы приложения:

Просто вместо типа ресурса string используются другие необходимые значения ( color , dimen и т.д.).

Теперь проверим, что это всё действительно работает. Добавим строку в файл values/strings.xml :

Теперь добавим строку в файл values-ru/strings.xml :

Видим, что название ресурсов followers_hint , following_hint совпадает в двух папках. А вот значения мы можем указывать для каждого языка свои.

Стоит отметить, что помимо ручного заполнения файлов с ресурсами, существует возможность делать это через специальный редактор. Чтобы в него попасть необходимо, открыв файл со строковыми ресурсами (любого языка), в правом верхнем углу нажать кнопку «Open editor» (рус. открыть редактор):

Теперь, когда мы научились добавлять ресурсы, давайте в файле activity_user_info.xml с нашей разметкой у элемента followers_text_view заменим напрямую написанный текст на только что созданный строковый ресурс android:text=»@string/followers_hint» , а у элемента following_text_view укажем атрибут android:text=»@string/following_hint» .

Так выглядит синтаксис при ссылке на файл ресурса. Необходимо вначале добавить @ , потом название файла, потом имя ресурса. Наши элементы followers_text_view , following_text_view теперь выглядят таким образом.

Запустим наше приложение и убедимся, что наша локализация действительно работает.

После запуска приложения на нашем эмуляторе Nexus 5X API 27 , видим, что вывелись строки Following , Followers , т.к. на эмуляторе стоит английский язык.

Давайте добавим русский язык и сделаем его основным.

Можем открыть наше приложение на эмуляторе или запустить его заново. Результат выглядит так:

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

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

Наш файл res/values/strings.xml должен выглядеть так:

Также добавим все цвета, которые нам понадобятся для нашего приложения. Наш файл res/values/colors.xml должен выглядеть так:

AndroidManifest

Сердцем любого Android приложения является файл AndroidManifest . Он находится в корневой папке каждого приложения и содержит важную информацию о приложении, которая требуется системе Android . Только получив эту информацию, система может выполнить какой-либо код приложения. Также манифест содержит:

  • Описание компонентов приложения, из которых состоит приложение. Он содержит имена классов, которые реализуют каждый компонент, и публикует их возможности На основании этих деклараций система Android может определить, из каких компонентов состоит приложение и при каких условиях их можно запускать.
  • Разрешения, которые должны быть выданы приложению, чтобы оно могло получить доступ к защищенным частям API-интерфейса и взаимодействовать с другими приложениями.

Подробнее ознакомиться с функциями манифеста можно в официальной документации или в данном видеоуроке.

  • Мы познакомились с базовыми ресурсами rev/values в Android .
  • Научились делать локализацию в приложении, добавлять ресурсы для новых языков.
  • Познакомились с главным файлом любого Android приложения – AndroidManifest .

Источник

Оцените статью