Файл: пользовательский интерфейс android. Использование активити.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.11.2023
Просмотров: 42
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Значок (иконка) приложения - небольшой графический ярлык расположенный в меню приложений или же вынесенный на один рабочих столов домашнего экрана, служащий для запуска приложения, а также его графического отображения в системе. При проектировании значка необходимо учитывать, что ваше приложение может быть установлено на различных устройствах, с различной плотностью экрана, а также необходимо его отображение в магазине Google Play. Поэтому используя макеты плотности экрана создайте несколько иконок разных размеров, для разных экранов. За отправную точку следует брать экраны с MDPI плотностью, с дальнейшим увеличением в пропорция равных 1,5x для HDPI, 2x для XHDPI, 3x для XXHDPI и 4x для XXXHDPI. Исходный размер должен быть равен 48dp, в результате на экранах с плотность MDPI размер значка будет равен 48х48 точек, для экранов HDPI - 72х72 точек, для XHDPI - 96х96 и т.д. Для публикации в Google Play также требуется изображение размером 512х512 точек.
Для значков различных действий непосредственно в приложении рекомендуется использование стандартных Holo-иконок, предоставляемых Google в векторном формате для графического редактора Adobe Illustrator.
Физический размер таких элементов должен составлять 32х32 точек, а видимая часть 24х24.
Цвета также рекомендуется использовать стандартные. Более светлый (#333333) для темного фона, с прозрачностью 40% и более темный (#FFFFFF) для светлого фона, с прозрачностью 20%.
На рисунке 9 показаны примеры иконок действий и их размер.
Примеры иконок для действий
При использовании контекстных иконок, следует использовать физический размер равный 16х16 с видимой частью 12х12, как показано на рисунке 10.
Пример контекстной иконки
Если использовать систему уведомлений, то для отображения в шторке уведомления требуемой информации, также нужен значок размером 24х24 белого цвета.
При создании элементов интерфейса рекомендуется использование векторных элементов там, где это возможно, с максимальным избеганием растровых изображений. Это поможет избежать проблем с оптимизацией для различных размеров экранов и различной плотности.
При названии файлов лучше использовать префиксы, тогда иконки будут группироваться внутри директории и их поиск существенно облегчиться.
В коде программы также лучше разбить все элементы интерфейса на отдельные группы, что снизит затраты времени в случае необходимости что-либо исправить. Например:
res /... drawable - ldpi /...
finished_asset . png drawable - mdpi /...
finished_asset . png drawable - hdpi /...
finished_asset . png drawable - xhdpi /... finished_asset . png
При использовании текста в интерфейсе, описании его элементов и прочего, старайтесь максимально сократить его размер и упросить его восприятие. Избегайте использования ненужных слов, несущих не требующуюся информацию, сокращайте размер текста, используя цифры вместо букв. Однако ненужно переусердствовать, если данный текст не отражает всю суть информации, которую требуется донести, то лучше сделать его более объемным, но пользователь полностью поймет, что от него хотят.
Принципы навигации
Главным элементом управления в современных смартфонах и планшетах является сенсорный экран. У ОС Android есть набор жестов, на которые особым образом реагирует система. Некоторые из них зарезервированы системой, такие как нажатие кнопки «домой» на навигационной панели, другие же зависят от приложения, запущенного в данный момент. Однако во избежание путаницы пользователя рекомендуется использование стандартных действий и жестов, работающих в системе.
Так, например, одиночное, кратковременное нажатие активирует элемент, на который направленно данное действие. Длительное удержание активирует выбор объекта или нескольких. Длительное нажатие и движение пальца по экрану - перемещение объекта. «Свайп» (сдвиг) в сторону вызывает переключение на соседнюю вкладку. Двойное нажатие на активирует увеличение масштаба в 2 раза (например, в галереи, при просмотре изображений), а «Свайп» вверх или вниз вызывает пролистывание списка.
Разведение или сведение двух пальцев вызывает увеличение, или уменьшение изображения соответственно.
Возможные жесты показаны
Пример жестов
Построение правильно навигации - одна из главных задач и проектировании интерфейса ПП, так как она должна полностью совпадать с навигацией в ОС и не вводить пользователя в положение, когда она не знает, что вызовет нажатие той или иной кнопки.
Должное внимание при этом следует уделить клавише «назад». Она должна выполнять следующие функции:
если пользователь находится на главном экране приложения, то нажатие клавиши «назад» вызовет закрытие приложения;
если пользователь находится в какой-либо вкладке ПП, на 1 уровень, то нажатие клавиши возвращает его на главный экран приложения;
если пользователь последовательно перешел на несколько уровней, то нажатие клавиши возвращает его на предыдущий уровень (Рисунок 12).
Нажатие клавиши «назад» при нахождении на 1 уровне В случае моментального необходимости возврата на главный экран приложения, требуется нажать на его конку, сверху, слева
Возврат к главному экрану
В случае, если у приложения несколько главных экранов (вкладок), то обходимо организовать динамическую клавишу, находящуюся сверху, слева
Возврат к разным главным экранам Ниже, приведена схема действия клавиши «назад» при переходе в приложения с виджета на экране.
Рисунок 15. Возврат после активизации виджета
Работа клавиши «назад» со шторкой уведомлений
Работа клавиши «назад» с всплывающими уведомлениями
При переходе из приложения «А» по ссылке в приложение «Б», после завершения действий в приложении «Б», оно автоматически свернется, и пользователь вернется к приложению «А». В случае отмены действия, нажатие клавиши «назад» работает также, как и обычно, за исключением того момента, когда вы достигните главной вкладки приложение «Б», дальнейшее нажатие клавиши «назад» вызовет закрытие приложения «Б» и возврат к «А».
На рисунках 12-17 продемонстрированы основные правила навигации для приложений Android.
3. Навигация
Шаблоны первичной навигации. Хорошая навигация, как и грамотный подход к проектированию, является невидимой вещью. Приложения с хорошей навигацией интуитивно понятны и позволяют с легкостью справиться с любой задачей, начиная с просмотра списка друзей и заканчивая обращением за кредитом на приобретение автомобиля. Вариантов навигации по содержимому в рамках приложения может быть много
Шаблон первичной навигации
Поскольку в каждой операционной системе имеются собственные принципы расположения вкладок, я выбрала шаблон Blank Activity (Пустое окно. В результате пустого окна можно разрабатывать что и как угодно, позволяющее самому предполагать дизайн приложения.
Жизненный цикл Activity
Activity — это отдельный экран в Android. Это как окно в приложении для рабочего стола, или фрейм в программе на Java. Activity позволяет вам разместить все ваши компоненты пользовательского интерфейса или виджеты на этом экране.
Важно понимать, что у Activity есть жизненный цикл, проще говоря, это означает, что она может быть в одном из различных стадий, в зависимости от того, что происходит с приложением при действиях пользователя.
Методы жизненного цикла
Давайте поближе рассмотрим жизненный цикл Android Activity. Каждый раз, когда Activity меняет стадию, вызывается один из следующих методов жизненного цикла для класса Activity.
onCreate(): вызывается при первой инициализации Activity. Вам нужно выполнить этот метод для выполнения любой инициализации в вашей Activity.
onStart(): это вызывается, когда Activity готова и отображается пользователю в первый раз, так как Activity готовится стать интерактивной и выйти на передний план. После завершения вызова этого метода, будет вызван метод onResume().
onResume(): когда Activity переходит в это состояние, оно начинает взаимодействовать с пользователем. Activity продолжает работать в этом состоянии, пока что-либо не уведёт фокус от приложения или Activity (например, входящий звонок). Если это произойдет, будет вызван метод onPause().
onPause(): этот метод используется для приостановки действий, которые не должны происходить, пока Activity в стадии паузы. Вызов этого метода указывает на то, что пользователь покинул приложение. К примеру, входящий звонок может перевести, проигрыватель музыки в состояние паузы. Это должно заглушить или остановить воспроизводящуюся музыку. Когда пользователь возвращается в приложение, вызывается метод onResume().
onStop(): этот метод вызывается, если Activity больше не видна в приложении. Такое может случится, если подгружена другая Activity и она занимает весь экран устройства. Когда вызывает этот метод, Activity сообщается перейти в состояние прекращения работы. В этом состоянии, система либо вызывает
onRestart() для возврата взаимодействия с Activity, либо вызывает метод onDestroy(), чтобу убрать Activity.
onDestroy(): этот метод вызывается перед тем, как Activity будет завершена. Система вызывает этот метод, когда пользователь завершает Activity, или если система временно убирает процесс, содержащий Activity, для высвобождения места. С этом методом, обязательно освободите любые ресурсы, созданные вашей Activity, иначе ваше приложение будет иметь утечку памяти.
onRestart(): это вызывается, если Activity перезапускается, после того, как было остановлено.
Запуск Activity
Большинство пользовательских взаимодействий приводит к изменению действующей Activity. Поэтому приложение моно раз переключается между Activity за свой жизненный цикл.
Необходимо связывать Activity друг с другом, если требуется чтобы одна Activity запускала другую. Для запуска Activity используйте либо startActivity(), либо startActivityForResult(). В обоих случаях вы должны передать Intent.
Запуск Activity без ожидаемого результата
startActivity() используется, если недавно запущенная Activity не должна возвращать результат.
Следующий фрагмент кода показывает как начать другую Activity, используя этот метод:
1 | Intent intent = new Intent(this, SecondActivity.class); |
2 | startActivity(intent); |
Можно также выполнять действия по передачи данных от одной Activity к другой. В этом случае, ваша текущая Activity (вызывающая Activity) хочет передать данные целевой Activity. Вот когда полезны Intents. Чтобы узнать больше об использовании Intents для запуска Activity
Запуск Activity на результат
startActivityForResult() используется для запуска другой Activity и ожидает получение данных в эту свежезапущенную Activity. Другими словами, используйте это если хотите получить результат от целевой Activity в вызывающую Activity, т.е. если целевая Activity собирает некую пользовательскую информацию в модальном диалоговом окне.
Вы получите результат от Activity в методе onActivityResult(int requestCode, int resultCode, Intent data). Результат будет возвращен в качестве Intent.
Запуск Activity на результат
startActivityForResult() используется для запуска другой Activity и ожидает получение данных в эту свежезапущенную Activity. Другими словами, используйте это если хотите получить результат от целевой Activity в вызывающую Activity, т.е. если целевая Activity собирает некую пользовательскую информацию в модальном диалоговом окне.