Ресурсы. Реализация файлов. XML в Android.
Android представляет собой платформу с открытым кодом для разработки приложений для мобильных устройств. С ее помощью можно получить доступ ко всем компонентам устройства, на котором выполняется эта ОС, начиная от низкоуровневого программирования графики и заканчивая использования встроенной камеры.
Ресурсы – один из основных компонентов, с которыми придется работать. В Android принято держать объекты, как изображения, строковые константы, цвета, стили и т.п. за пределами исходного кода. В основном они хранятся в виде xml-файлов в каталоге res с подкаталогами values, drawable-ldpi, drawable-mdpi, drawable-hdpi, layout, но также бываютдругие типы ресурсов.
Самыми распространенными ресурсами являются строки (string), цвета (color), и графические рисунки (bitmap).
Цвета, как и все остальные ресурсы, следует определять в разметке xml. Обычно цвета определяются в файле с названием colors.xml, который создается многими шаблонами приложений AndroidStudio (рис. 4).
Рис. 4. Res / values / colors.xml.
Android позволяет хранить в ресурсах массивы строк. Для этого используется тег string-array, который содержит внутри элементы item с конкретными строками.
Элементы массива инициализируются, как обычные строки, а элементы item содержат только ссылку на них такая инициализация удобна. Само описание массива при этом удобно вынести в отдельный ресурсный файл (рис. 5).
Рис. 5. Res / values / string.xml.
Ресурсы размеров
В Android используются следующие единицы измерения: пикселы, дюймы, точки. Все они могут входит в состав ХМL-шаблонов и кода Jаvа. Данные единицы измерения также можно использовать в качестве ресурсов при помощи тега <dimen> (обычно используют файл dimens.xml):
Рис. 6. Res / values / attrs.xml.
Часто используемый список format (тип свойства):
· dimension — может быть значение типа 10px, 10dip;
· integer — может быть значение типа 10, 5, 2;
· string — просто текстовое значение типа «Hello World».
Как и другие ресурсы, ресурс dimension определяется в корневом элементе <resources>. Тег <dimen> обозначает ресурс и в качестве значния принимает некоторое значение размера в одной из принятых единиц измерения (dp, sp, pt, px, mm, in).
Так, добавим в Android Studio в папку res/values новый файл, который назовем dimens.xml. Определим в нем следующее содержимое:
Рис. 7. Res / values / dimens.xml.
Здесь определены два ресурса для отступов activity_horizontal_margin и activity_vertical_margin, которые хранят значение 1 dp и 8 dp, и атрибут divider, который отвечает за внешний вид разделителя. Названия ресурсов могут быть произвольными.
Экран имеет такие физические значения как диагональ и разрешение. Диагональ – это расстояние между противоположными углами экрана, обычно измеряется в дюймах. Разрешение – количество точек по горизонтали и вертикали, которое экран способен отобразить, измеряется в пикселях.
Layout windth и Layout heigth.
На них можно указывать абсолютные значения, а можем использовать константы.
Абсолютныезначения:
- dp и dip – Dencity-indenperendent Pixels. Абстракная ЕИ, позволяющая приложениям выглядеть одинаково на разных экранах и разрешениях.
- px – пиксель, не рекомендуется использовать так как на разных экранах приложение будет выглядеть по-разному.
- mm – миллиметр, определяется по физическому размеру экрана.
- in – дюйм, определяется по физическому размеру экрана.
Константы:
- math_parent (fill_parent) – означает, что элемент займет всю доступную ему в родительском элементе ширину и высоту.
- wrap_content – ширина и высота элемента будет определятся его содержимым.
Расположение View-элементов на экране зависит от ViewGroup (Layout), в которой они находятся. LinerLayout – отображает View –элементы в виде одной строки (Horizontal) или одного столбца (Vertical). Этот вид ViewGroup по умолчанию предлагается при создании новых layout-файлов. Он достаточно удобен и гибок, чтобы создавать экраны различной сложности.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activitty_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/acivity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@color/background"
tools:context="com.a2210.alive.mydailyscheduller.MainActivity">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background"
android:dividerHeight="@dimen/divider"
android:divider="@color/colorPrimary"
android:id="@+id/li"/>
</LinearLayout>
[A3] [A4] Res / layout / activity_main.xml.
Суть приложения: считывание информации о занятиях с сайта университета. Приложение должно посылать запрос который содержит сведения о группе на сайт БГУ и получать ответ в виде файла с расписанием.