- •Ос. Лабораторная работа №1 проетированИе интерфейса пользователя расчетного android-приложения
- •Задание на разработку.
- •Теоретические сведения.
- •Знакомство с компонентом TableLayout
- •Создание проекта, добавление макета TableLayout
- •Конфигурирование параметров объекта TableLayout
- •Формирование строк
- •Формирование ячеек строки tableRow0
- •Формирование ячеек строки tableRow5
- •Настройка элементов графического интерфейса
- •Изменение свойства textColor
- •Перемещение компонентов в требуемые столбцы
- •Центрирование текста и изменение размера шрифта
- •Объединение нескольких ячеек
- •Выравнивание по правому краю
- •Центрирование по вертикали
- •Установка свойств Progress и Padding объекта customSeekBar
- •Предотвращение возможности изменения пользователем результатов вычислений
- •Указание типа числовой клавиатуры
- •Настройка значений веса макета компонентов
- •Графический интерфейс приложения
Ос. Лабораторная работа №1 проетированИе интерфейса пользователя расчетного android-приложения
Цель работы: Научиться проектировать интерфейс расчетных приложений для мобильной платформы Android с использованием языка разметки XML.
Задание на разработку.
Приложение Tip Calculator (Калькулятор чаевых), активность которого показана на рис. 1, вычисляет и отображает чаевые на основании суммы счета в ресторане.
|
Рисунок 1. Ввод суммы счета и подсчет чаевых: а — начальный интерфейс пользователя, появляющийся после касания пользователем компонента Bill total и отображения цифровой клавиатуры; б — интерфейс пользователя после ввода выставленного счета на $123,45 и изменения процентной ставки чаевых на 17% |
После ввода пользователем суммы счета приложение вычисляет и отображает размер чаевых и величину итогового счета (с учетом чаевых). При этом для расчета чаевых используются три процентные ставки: 10%, 15% и 20%. Пользователь может указать собственную ставку, используемую при расчете чаевых. Для этого нужно переместить ползунок компонента Seekbar, после чего обновляется величина процентной ставки, которая отображается в правой части компонента SeekBar. В качестве заданной по умолчанию пользовательской процентной ставки для чаевых выбрана величина 18%. Это связано с тем, что многие рестораны используют эту процентную ставку для компаний, состоящих из шести человек и более. Предполагаемые величины чаевых и общего счета могут быть изменены пользователем.
Теоретические сведения.
Для взаимодействия с пользователем в интерфейсе приложения используются компоненты EditText, TextView и SeekBar. Эти компоненты включаются в интерфейс с помощью окна представления Android Studio, включая ручное редактирование XML-разметки, используемой для создания UI. Компонент EditText, который часто называется текстовым полем или текстовым окном в других UI-технологиях, — это подкласс компонента TextView. Компонент EditText отображает текст либо принимает текст, вводимый пользователем. Компонент SeekBar, в других UI-технологиях называемый ползунком, графически представляет положение целого числа в диапазоне 0 – 100, которое с помощью ползунка может изменяться пользователем. Для организации взаимодействия между пользователем и интерфейсом пользователя применяются обработка событий и анонимные внутренние классы.
Знакомство с компонентом TableLayout
В приложении, создаваемом в этой главе, для размещения компонентов UI в шести строках и четырех столбцах используется макет TableLayout (рис. 2). Каждая ячейка, определенная объектом TableLayout, может быть пустой или включать один компонент, в качестве которого может выступать другой макет, содержащий другие компоненты.
В строках 0 и 4 на рис. 2 показаны элементы, которые занимают несколько столбцов. Для создания строк используются объекты TableRow. Количество столбцов в TableLayout определяется с помощью объекта TableRow, который содержит большинство компонентов. Высота каждой строки определяется самым высоким компонентом в этой строке (обратите внимание на рис. 2, где строки 1 и 4 короче других строк).
Аналогично ширина столбца определяется наиболее широким элементом этого столбца (если не разрешить «растягивание» столбцов таблицы для заполнения экрана по ширине, в результате чего столбцы становятся шире). По умолчанию компоненты добавляются в строку в направлении слева направо. Можно указать точное положение компонента с помощью нумерации, которая по умолчанию начинается с 0.
Строки и столбцы объекта TableLayout для приложения показаны на рис. 2.
|
Рисунок 2. Класс TableLayout с подписанными строками и столбцами, используемый для создания GUI приложения Tip Calculator
|
На рис. 3 показаны имена всех компонентов UI, применяемых для формирования интерфейса приложения. Используемое соглашение о наименовании предусматривает использование имени класса компонента UI в качестве значения свойства id каждого компонента в XML-разметке и в имени переменной каждого компонента в коде Java.
|
Рисунок 3. Компоненты UI приложения Tip Calculator, в качестве названий которых используются значения свойства id
|
Формирование UI, показанного на рис. 2, должно начинаться с формирования базового макета и элементов управления, потом настраиваются свойства элементов управления, завершая тем самым проект. После добавления компонентов в каждую строку объекта TableLayout настраиваются свойства id и Text этих компонентов (рис. 3). При разработке проекта значения литеральных строк желательно включать в файл strings.xml, который находится в папке res/values приложения. Это полезно в тех случаях, когда понадобится локализовать приложение для его использования на разных языках. Правда, для компонентов TextView с названиями 10%, 15% и 20% строковые ресурсы не понадобятся.
Следует заметить, что добавление компонентов в соответствующие объекты TableRow макета TableLayout производятся с помощью окна Component Tree. Это объясняется тем, что при работе со сложными структурами, например TableLayout, с помощью визуального представления экрана довольно трудно просматривать сложную многоуровневую структуру макета и помещать компоненты на нужный уровень. В окне Component Tree отображается разветвленная структура UI, в связи с чем задача проектирования существенно упрощается. Например, можно выбрать соответствующую строку в TableLayout и добавить в эту строку выбранный вами компонент UI.
