Домашние Задания для GB
Необходимо разработать небольшое приложение-счётчик для подсчёта пассажиров, входящих в автобус. Приложение должно иметь примерно следующий вид:
- Нажатие кнопок «+» и «-» изменяет значение счётчика и тестовых полей на «+1» и «-1» соответственно. Задавать значение меньше 0 нельзя.
- Кнопка «Сброс» не только сбрасывает счётчик, но и возвращает приложение в первоначальное состояние (скриншот 1).
- В автобусе 49 сидячих мест. Мы хотим отправлять автобусы максимально наполненными, но допускать превышения нельзя. Слишком большое количество пассажиров — это повод для немедленного отправления.
- Если все места свободны, текст по середине — зелёный, кнопка «-» — недоступна.
- При количестве пассажиров от 1 до 49 текст синий, кнопки доступны. Кнопка «Сброс» невидимая.
- При количестве пассажиров 50 и выше текст красный, появляется кнопка «Сброс».
Цель практической работы Потренироваться применять знания по основным ViewGroup.
Что нужно сделать: Создайте CustomView по примерному шаблону какого-либо поста в соцсети (смотрите картинку), используя знания о ViewGroup.
Вёрстка должна быть с отступами (все отступы в макете 16dp). CustomView должен встраиваться в main_activity.xml и отображаться при запуске приложения. Тексты внутри виджетов «Верхняя строчка» и «Нижняя строчка» должны настраиваться из кода MainActivity. Например: из кода MainActivity настройте CustomView так, чтобы отобразилось «верхняя строчка, настроенная из кода», «нижняя строчка, настроенная из кода».
Советы и рекомендации:
• Чёрный квадрат можно сделать при помощи FrameLayout c таким бэкграундом: android:background="@android:color/black"
• Серый квадрат тоже сделайте с помощью FrameLayout background = @android:color/darker_gray android:background="@android:color/darker_gray Видео про отступы
• Убедитесь, что верхняя и нижняя строчка не переносятся на новую строку, когда в них подставляется длинный текст. Например, попробуйте подставить android:text="@tools:sample/lorem/random"
• Чтобы текст не переносился, используйте атрибуты
android:lines="1" android:ellipsize="end"
Попробуйте поменять значение атрибута ellipsize при длинном тексте, например на middle, и посмотрите, что произойдет со значением текстового поля.
Цель практической работы: Применить знания по верстке с помощью ConstraintLayout для создания типового макета мобильного приложения.
Что нужно сделать: Создайте экран по такому макету, используя только ConstraintLayout в качестве единственной ViewGroup.
Требования:
- Все отступы, кроме отступа кнопки от картинки, равны 16 dp.
- Кнопка Play имеет размеры 80х80.
- Кнопки «Перемотка назад» и «Перемотка вперёд» имеют размеры 40х40 dp и выровнены по центру относительно кнопки Play.
- Обложка альбома выровнена по центру экрана как по горизонтали, так и по вертикали.
- TextView «Исполнитель» и «Наименование композиции» выровнены по горизонтали относительно экрана.