- Palette
- Наложение двух компонентов
- Идентификаторы
- Tooltip (Подсказка)
- v.3.4-3.1
- Основы создания интерфейса
- Введение в создание интерфейса
- Создание интерфейса в коде java
- О разработке мобильных приложений в Android studio: часть 2
- Технические науки
- Похожие материалы
- Список литературы
- Завершение формирования электронного архива по направлению «Науки о Земле и энергетика»
- Создание электронного архива по направлению «Науки о Земле и энергетика»
Palette
На панели Palette находятся компоненты пользовательского интерфейса: View, Layouts, ViewGroup.
Виджет — это объект View, который служит интерфейсом для взаимодействия с пользователем. Если сказать предыдущую умную фразу простым языком, понятным даже коту, то виджеты — это обычные элементы управления: кнопочки, текстовые поля, флажки, переключатели, списки.
В сети можно встретить разные способы наименования на русском — контрол, вьюха, представление и т.д. Мы с вами будем использовать термин компонент. А знаете почему? Берём крайние буквы слова, отсчитываем по три следующих символа и выкидываем их на свалку. Что остаётся? Ну вы поняли — к омп о нен т. Красиво спрятались.
Кстати, в последних версиях Android Studio в режиме Design появилась панель Component Tree, хотя раньше в Eclipse аналогичная вкладка называлась Outline. Видимо, разработчики из Гугла читали эту статью и внесли поправки.
Стандартные элементы имеют привычные свойства: ширина, высота, цвет и т.п.
Другие настройки могут сбить с толку других программистов, поэтому не изощряйтесь в остроумии.
Выравнивание (gravity) — это ориентация в контейнере (alignment). Например, вы хотите выровнять текст надписи по правому краю, тогда свойство gravity будет иметь значение right. Набор значений для gravity достаточно ограничен: left, center, right, top, bottom, center_vertiсаl, сliр_horizontal и еще некоторые.
Обратите внимание, что в Android есть два сходных атрибута выравнивания: android: gravity и android: layout_gravity. Разница заключается в том, что android: gravity — это настройка, используемая компонентом, а android: layout_gravity применяется контейнером. Например, можно установить для android: gravity значение center, чтобы текст в EditText был выровнен по центру. Аналогичным образом можно выровнять EditText по правому краю LinearLayout (который является контейнером), установив android: layout_gravity=»right».
У компонентов также есть атрибут android:tag, который можно использовать для хранения каких-то промежуточных данных. Также можно устанавливать теги программно. Напишем надуманный пример:
Наложение двух компонентов
Вы можете использовать не только положительные, но и отрицательные значения для атрибута layout_marginBottom или родственных ему. При этом можно наблюдать эффект, когда следующий компонент будет «наезжать» на ваш компонент.
Идентификаторы
Те компоненты, к которым вы будете обращаться в коде, нужно обязательно присваивать идентификаторы. Кроме того, они помогут сохранить состояние при поворотах: текст в текстовых полях, статус переключателей и т.д.
Tooltip (Подсказка)
В Android 8.0 (API 26) у View появилась возможность присвоить компоненту подсказку, которая появляется при долгом нажатии или при прохождении курсора мыши (бывает и такое).
Подсказку можно установить через XML-атрибут.
Можно установить подсказку программно, а также получить текст.
v.3.4-3.1
В версии 3.2 добавили ChipGroup, Chip, BottomAppBar. В версии 4.1 появился новый раздел Helpers. В версии 4.2 список компонентов снова изменился.
Источник
Основы создания интерфейса
Введение в создание интерфейса
Графический интерфейс пользователя представляет собой иерархию объектов android.view.View и android.view.ViewGroup . Каждый объект ViewGroup представляет контейнер, который содержит и упорядочивает дочерние объекты View . В частности, к контейнерам относят такие элементы, как RelativeLayout, LinearLayout, GridLayout, ConstraintLayout и ряд других.
Простые объекты View представляют собой элементы управления и прочие виджеты, например, кнопки, текстовые поля и т.д., через которые пользователь взаимодействует с программой:
Большинство визуальных элементов, наследующихся от класса View, такие как кнопки, текстовые поля и другие, располагаются в пакете android.widget
При определении визуального у нас есть три стратегии:
Создать элементы управления программно в коде java
Объявить элементы интерфейса в XML
Сочетание обоих способов — базовые элементы разметки определить в XML, а остальные добавлять во время выполнения
Сначала рассмотрим первую стратегию — определение интерейса в коде Java.
Создание интерфейса в коде java
Для работы с визуальными элементами создадим новый проект. В качестве шаблона проекта выберем Empty Activity :
Пусть он будет называться ViewsApp:
И после создания проекта два основных файла, которые будут нас интересовать при создании визуального интерфейса — это класс MainActivity и определение интерфейса для этой activity в файле activity_main.xml .
Определим в классе MainActivity простейший интерфейс:
При создании виджетов в коде Java применяется их конструктор, в который передается контекст данного виджета, а точнее объект android.content.Context , в качестве которого выступает текущий класс MainActivity.
Здесь весь интерфейс представлен элементом TextView, которое предназначено для выводa текста. С помощью методов, которые, как правило, начинаются на set , можно установить различные свойства TextView. Например, в данном случае метод setText() устанавливает текст в поле, а setTextSize() задает высоту шрифта.
Для установки элемента в качестве интерфейса приложения в коде Activity вызывается метод setContentView() , в который передается визуальный элемент.
Если мы запустим приложение, то получим следующий визуальный интерфейс:
Подобным образом мы можем создавать более сложные интерейсы. Например, TextView, вложенный в ConstraintLayout:
Для каждого контейнера конкретные действия по добавлению и позиционированию в нем элемента могут отличаться. В данном случае контейнеров выступает класс ConstraintLayout, поэтому для определения позиционирования и размеров элемента необходимо создать объект ConstraintLayout.LayoutParams . (Для LinearLayout это соответственно будет LinearLayout.LayoutParams, а для RelativeLayout — RelativeLayout.LayoutParams и т.д.). Этот объект инициализируется двумя параметрами: шириной и высотой. Для указания ширины и высоты можно использовать константу ViewGroup.LayoutParams.WRAP_CONTENT , которая устанавливает размеры элемента, необходимые для размещения а экране его содержимого.
Далее определяется позиционирование. В зависимости от типа контейнера набор устанавливаемых свойств может отличаться. Так, строка кода
указывает, что левая граница элемента будет выравниваться по левой ганице контейнера.
указывает, что верхняя граница элемента будет выравниваться по верхней ганице контейнера. В итоге элемент будет размещен в левом верхнем углу ConstraintLayout.
Для установки всех этих значений для конкретного элемента (TextView) в его метод setLayoutParams() передается объект ViewGroup.LayoutParams (или один из его наследников, например, ConstraintLayout.LayoutParams).
Все классы контейнеров, которые наследуются от android.view.ViewGroup (RelativeLayout, LinearLayout, GridLayout, ConstraintLayout и т.д.), имеют метод void addView(android.view.View child) , который позволяет добавить в контейнер другой элемент — обычный виджет типа TextView или другой контейнер. И в данном случае посредством данного метода TextView добавляется в ConstraintLayout:
Опять же отмечу, что для конкретного контейнера конкретные действия могут отличаться, но как правило для всех характерно три этапа:
Создание объекта ViewGroup.LayoutParams и установка его свойств
Передача объекта ViewGroup.LayoutParams в метод setLayoutParams() элемента
Передача элемента для добавления в метод addView() объекта контейнера
Хотя мы можем использовать подобный подход, в то же время более оптимально определять визуальный интерейс в файлах xml, а всю связанную логику определять в классе activity. Тем самым мы достигнем разграничения интерфейса и логики приложения, их легче будет разрабатывать и впоследствии модифицировать. И в следующей теме мы это рассмотрим.
Источник
О разработке мобильных приложений в Android studio: часть 2
Технические науки
- Антипин Андрей Федорович , кандидат наук, доцент, доцент
- Башкирский государственный университет
- ANDROID STUDIO
- МОБИЛЬНОЕ ПРИЛОЖЕНИЕ
- ПРОГРАММИРОВАНИЕ
- JAVA
Похожие материалы
В предыдущей части статьи были рассмотрены особенности работы в интегрированной среде разработки Android Studio [1, 2], используемой для создания мобильных приложений (или mobile application), предназначенных для запуска на устройствах, работающих под управлением операционной системы Android (смартфонах, планшетах и т. п.) [3].
Рассмотрим наиболее используемые элементы управления (View или компоненты), размещаемые на оконных формах (или Activity) мобильных приложений, имеющиеся в Android Studio:
1. TextView. Данный элемент управления представляет собой надпись, размещаемую на форме. Текст для надписи хранится в свойстве text. Группа свойств под общим именем textAppearance позволяет форматировать текст надписи, а именно:
- fontFamily — позволяет выбрать шрифт для надписи, по умолчанию стоит шрифт sans—serif;
- textSize — задает размер символов, по умолчанию 14sp, где sp — это специальная единица измерения в Android, что означает масштабируемые независимые пиксели;
- textColor — задает цвет символов;
- textStyle — позволяет выбрать стиль (полужирный, курсивный и пр.);
- textAlignment — устанавливает выравнивание текста внутри элемента управления (по левому краю, по центру и пр.).
Свойства layout_width и layout_height позволяют задать фиксированный размер компонента, измеряемый в единицах измерения dp (от англ. пиксели независимые от плотности).
Для того чтобы поменять текст надписи из программы, необходимо выполнить команду setText, предварительно связав элемент управления с соответствующей ему переменной внутри программы. Например:
где в скобках записан текст на замену.
В примере строка findViewById(R.id.textView) обеспечивает связь компонента с ID, равным textView, с переменной tV.
Android Studio автоматически подключает нужные библиотеки в раздел import. Так, при обращении к элементу TextView, в раздел import добавляется следующая строка:
2. Button. Данный элемент управления представляет собой командную кнопку, действия над которой можно запрограммировать.
В свойстве text хранится текст, отображаемый на кнопке, а свойство onClick позволяет привязать метод для обработки события, возникающего при щелчке мышкой по кнопке.
3. editText. Данный компонент представляет собой однострочное поле для ввода текста, который хранится в свойстве text.
Свойство inputType позволяет выбрать тип вводимых символов: цифры (Number), числа со знаком (NumberSigned), числа с точкой (NumberDecimal) и пр.
В свойстве hint можно задать текст подсказки.
Для того чтобы записать введенный в editText текст в переменную типа String, следует выполнить команду getText с последующим приведением результата к строковому типу, используя для этого метод toString().
4. checkBox. Данный элемент управления представляет собой поле для установки/снятия флажка и используется для выбора каких-либо значений.
Метод setChecked устанавливает и (или) снимает флажок, а метод isChecked() — проверяет установлен флажок или снят. Например:
В примере метод setTitle позволяет менять заголовок формы без прямого обращения к ней по имени.
5. radioButton. Данный элемент управления представляет собой, так называемую, радиокнопку, свойства которой, по сути, аналогичны checkBox.
Как самостоятельные элементы управления радиокнопки используют редко, так как их предпочтительнее использовать в составе группы.
6. radioGroup. Данный компонент позволяет объединить несколько радиокнопок, размещенных на форме, в одну группу, что дает возможность автоматического выбора (т. е. установки) только одной из них.
Компонент radioGroup относится к невизуальным компонентам, т.е. он не отображается на форме и работать с ним можно только программно.
Так, объединение компонентов radioButton в группу осуществляется путем перетаскивания их на компонент radioGroup, который необходимо предварительно разместить на форме.
При необходимости можно выбрать (т.е. установить флажок) одну из радиокнопок, используя для этого свойство checked.
На рис. 1 изображена форма приложения с расположенными на ней элементами управления: TextView, Button, EditText, CheckBox, RadioButton, radioGroup. Радиокнопки при этом объединены в группу.
Рисунок 1. Пример формы мобильного приложения
7. ProgressBar. Данный View представляет собой полоску, на которой отображается прогресс выполнения какого-либо процесса. Свойство progress хранит текущее значение прогресса, которое меняется в процессе работы приложения.
Для установки значения прогресса из программы следует использовать метод setProgress(), например:
где pBar — ID, или имя, компонента ProgressBar, расположенного на форме.
8. SeekBar. Данный элемент управления представляет собой бегунок, который можно перемещать в процессе работы с приложением для выбора того или иного значения.
Свойства SeekBar во многом аналогичны свойствам ProgressBar.
Чтобы получить текущее положение бегунка необходимо выполнить команду getProgress(), например:
9. gridView. Данный View позволяет добавить на форму таблицу для ввода/вывода в ее ячейки различных значений.
Для работы с таблицей необходимо описать адаптер, определяющий ее содержимое. Адаптер содержит метод getView, который вызывается автоматически при обращении к ячейкам таблицы и формирует значение ячейки в зависимости от заданного шаблона.
Подключение адаптера к таблице осуществляется с помощью метода setAdapter.
Например, следующий код заполняет таблицу gridView случайными значениями, предварительно сгенерированными в строковый массив mas для передачи его адаптеру в качестве одного из параметров:
Индексация ячеек таблицы начинается с 0.
Рассмотренные в статье элементы управления (или View) являются наиболее используемыми при создании мобильных приложений, в то время как Android Studio содержит гораздо большее количество компонентов, предназначенных для реализации различных задач программирования и позволяющих создавать сложные приложения с расширенным набором функций и возможностями.
Список литературы
- Антипин А.Ф. Организация эффективной работы преподавателей в условиях рейтинговой системы обучения // Прикладная информатика. 2014. № 3. С. 48-59.
- Седова Н.А., Седов В.А. Методы оценки качества полученных решений // Южно-Сибирский научный вестник. 2012. № 1. С. 88–91.
- Степашина Е.В. Оптимизация финансовых показателей предприятия на основе нейросетевой модели // Информационные системы и технологии. 2014. № 5. С. 34-42.
Завершение формирования электронного архива по направлению «Науки о Земле и энергетика»
Создание электронного архива по направлению «Науки о Земле и энергетика»
Электронное периодическое издание зарегистрировано в Федеральной службе по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), свидетельство о регистрации СМИ — ЭЛ № ФС77-41429 от 23.07.2010 г.
Соучредители СМИ: Долганов А.А., Майоров Е.В.
Источник