Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум ТРТКС part 2 2012.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆
  1. Разметка пользовательского интерфейса

Содержимое файла XML однозначно определяет внешний вид пользовательского интерфейса.

XML - расширяемый язык разметки (англ. Extensible Markup Language). Файл XML - документ, в котором использованы теги (дескрипторы) для определения объектов и их атрибутов. Форматирование данных напоминает язык разметки HTML-документов. Но в отличие от HTML, в XML используются теги, которые задаются пользователями. XML элемент состоит из открывающего и закрывающего тегов, заключённых в угловые скобки, между которыми находится текст или другие объекты. Пример:

<resources> // открывающий дескриптор

<string name="app_name">Hello, Android</string>

<string name="hello_world">Hello world!</string>

<string name="menu_settings">Settings</string>

</resources> // закрывающий дескриптор

Дескриптор может содержать атрибуты. Атрибуты определяют такие свойства элементов как цвет, выравнивание, размер и т.д. В примере атрибутом является строка: name="app_name".

    1. Редактирование пользовательского интерфейса

Eclipse предлагает два способа редактирования интерфейса: в графическом режиме (вкладка Graphical Layout) см. рисунок 29 и в текстовом режиме (вкладка *.xml) см. рисунок 30.

Для вставки и размещения элементов управления на экране мобильного устройства удобно использовать графический режим, а для задания свойств элементов разметки и управления – текстовый. Хотя каждый разработчик выбирает для себя способ воплощения своих идей.

    1. Элементы разметки

      1. Объявление документа XML

Первый элемент – объявление документа XML – сообщает текстовому редактору Eclipse и операционной системе Android, что это файл XML, а также указывает версию XML и кодировку файла.

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

      1. Тип компоновки

При создании пользовательского интерфейса нужно его визуальные элементы разместить на экране. Они могут размещаться линейно – один за другим по горизонтали или по вертикали или в виде таблицы, а иногда необходимо задавать точные координаты каждого элемента (точное позиционирование).

Рисунок 29 – Редактирование интерфейса пользователя в графическом режиме

Разработчики Android создали множество инструментов, позволяющих применять разные типы компоновки. Каждому типу компоновки соответствует определённый класс Java, каждому из которых соответствует определённый дескриптор XML.

Таблица 1 содержит наиболее популярные типы компоновок, доступные в Android SDK.

Таблица 1 – Типы компоновок

Имя класса

Описание

LinearLayout

Дочерние элементы контейнера размещаются в один ряд.

RelativeLayout

Позиции дочерних элементов определяются по отношению друг к другу или родительскому элементу.

FrameLayout

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

TableLayout

Дочерние элементы размещаются в ячейках таблицы.

Рисунок 30 – Редактирование интерфейса пользователя в режиме XML

Пример дескрипторов XML, задающих линейную компоновку дочерних элементов:

<LinearLayout xmlns:android=

"http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

> // Открывающий дескриптор

// Дочерние элементы

</LinearLayout> // Закрывающий дескриптор

В примере первая строка «xmlns:android=…» определяет пространство имён XML, используемое для ссылки на компоненты Android SDK. Остальные строки определяют атрибуты компоновки.

      1. Атрибуты компоновки

Основными атрибутами являются:

  • android:orientation  ориентация на экране принимает значения "vertical" и "horozontal";

  • android:layout_width  ширина компоновки;

  • android:layout_height  высота компоновки. Параметры ширины и высоты могут принимать точно определённые значения (например, в пикселах) или предопределённые строковые значения, самые распространённые из которых "fill_parent" (заполнить всё доступное пространство) и "wrap_content" (сворачивать содержимое);

  • android:background  задает цвет (градиент) фона;

  • android:layout_marginTop  определяет отступ элемента от соседних элементов сверху в единицах размера;

  • android:layout_marginLeft  определяет отступ элемента от соседних элементов слева в единицах размера;

  • android:layout_marginRight  определяет отступ элемента от соседних элементов справа в единицах размера;

  • android:layout_marginBottom  определяет отступ элемента от соседних элементов снизу в единицах размера;

  • android:layout_gravity  определяет, как элементы позиционируются внутри родительского элемента (top, bottom, left, right, center). Значение у элемента может быть одно или несколько (тогда они разделяются «|»).