SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Android User Interface
Android Internship 2014
Роман Савин
Android User Interface
UI Overview
• Весь графический интерфейс строится из объектов классов View и
ViewGroup
• View - нечто, что может быть нарисованно на экране и с чем
пользователь может взаимодействовать
• ViewGroup - наследник View, содержит в себе другие View и
определяет как они будут расположенны относительно друг друга
• AdapterView - особый наследник ViewGroup, дочерние элементы
которого задаются с помощью Adapter’a
Android User Interface
UI Overview
Android User Interface
Declaring Views
• Дерево View может быть создано прямо в коде
• Более простой и предпочтительный способ - использовать XML
• Это декларативно (говорим что делать, а не как)
• Позволяет отделить графический интерфейс и логику
• Меньше усилий и более читабельно
• Переиспользуемо
• Для разных конфигураций могут быть созданы разные XML файл,
при этом коду знать об этом не обязательно
Android User Interface
Attributes
• В xml поведение отдельного View можно настраивать с помощью
аттрибутов
• Существует набор аттрибутов общих для всех View
• Почти каждый наследник View имеет свой собственный набор
специфичных для него аттрибутов
• Можно создавать свои собственные аттрибуты
• Часто для каждого аттрибута существуют соответствующие ему
методы
Android User Interface
Common Attributes
• android:id - уникальный идентификатор
• android:layout_width - ширина элемента
• android:layout_height - высота элемента
• android:layout_margin - отступы снаружи элемента
• android:padding - отступы внутри элемента
• android:layout_gravity - расположение элемента внутри родителя
• android:gravity - расположение контента внутри элемента
• android:visibility - показывать элемент или нет
• android:background - фоновое изображение
Android User Interface
Dimension Units
• px - реальные пиксели на экране
• pt - points, 1/72 дюйма
• mm – миллиметры
• in – дюймы
• dip - density independent pixels. Количество пикселей одном dip
зависит от плотности экрана
• sp - scaled pixels. Аналогичны dip + размер зависит от выбранного
размера шрифта пользователем
• процентов нет
Android User Interface
Dimension Units. px vs. dp
Android User Interface
Drawable Types
• ColorDrawable - просто цвет
• BitmapDrawable - просто картинка
• NinePatchDrawable - картинка, которая умеет
растягиваться
• StateListDrawable - меняет свой контент в зависимости
от состояния
Android User Interface
Common Views
• TextView - текстовое поле. Нередактируемое
• EditText - редактируемое текстовое поле
• ImageView – картинка
• Button – кнопочка
• CheckBox - галочка
Android User Interface
TextView Attributes
• android:text – текст
• android:textSize – размер
• android:textColor – цвет
• android:textStyle - стиль (bold, italic, monospace)
• android:singleLine - максимум одна строка текста
• android:maxLines - максимальное число строк текста
• android:ellipsize - что делать, если текст слишком длинный
Android User Interface
EditText Attributes
• android:hint - подсказка, видна пока EditText пустой
• android:textColorHint - цвет подсказки
• android:inputType - тип клавиатуры (email, телефон и т.д.)
• android:digits - список допустимых символов
Android User Interface
ImageView Attributes
• android:src - что показывать
• android:scaleType - как масштабировать
• android:adjustViewBounds - меняем размеры View в зависимости от
размеров каритнки
Android User Interface
Input Handling
• View.setOnClickListener
• View.setOnLongClickListener
• View.setOnFocusChangeListener
• View.setOnTouchListener
• TextView.addTextChangedListener
• CompoundButton.setOnCheckedChangeListener
Android User Interface
Common Layouts
• FrameLayout - рисует дочерние View поверх друг друга
• LinearLayout - выстраивает свои элементы в одну линию
• RelativeLayout - хитро располагает элементы относительно друг
друга
• GridLayout - дочерние View располагаются по сеточке
• ScrollView - добавляет скролл, если контент слишком большой
Android User Interface
ListView
• Отображение вертикального списка однотипных данных
• Переиспользует созданные вьюхи
• Можно добавлять хедеры и футеры
• Необходимо использовать класс Adapter
Android User Interface
BaseAdapter
Необходимо переопределить:
• int getCount()
• getItem(int position)
• getItemId(int position)
• getView(int position, View convertView, ViewGroup parent)
Android User Interface
Common Adapters
• ArrayAdapter
• CursorAdapter
• SimpleAdapter
Android User Interface
Дополнительные ссылки
• http://developer.android.com/guide/topics/ui/index.html
• http://developer.android.com/training/best-ui.html
• http://developer.android.com/training/improving-layouts/index.html

Mais conteúdo relacionado

Destaque

Android - 09 - Fragments
Android - 09 - FragmentsAndroid - 09 - Fragments
Android - 09 - FragmentsNoveo
 
Лекция Android. Fragments, ActionBar, Drawer
Лекция Android. Fragments, ActionBar, DrawerЛекция Android. Fragments, ActionBar, Drawer
Лекция Android. Fragments, ActionBar, DrawerАлександр Брич
 
Работа с графической подсистемой (Lecture 10 – Graphics)
Работа с графической подсистемой (Lecture 10 – Graphics)Работа с графической подсистемой (Lecture 10 – Graphics)
Работа с графической подсистемой (Lecture 10 – Graphics)Noveo
 
Web internship Yii Framework
Web internship  Yii FrameworkWeb internship  Yii Framework
Web internship Yii FrameworkNoveo
 
Database (Lecture 14 – database)
Database (Lecture 14 – database)Database (Lecture 14 – database)
Database (Lecture 14 – database)Noveo
 
Android - 08 - Action bar
Android - 08 - Action barAndroid - 08 - Action bar
Android - 08 - Action barNoveo
 
Введение в Android-разработку (Lecture 06 – basics)
Введение в Android-разработку (Lecture 06 – basics)Введение в Android-разработку (Lecture 06 – basics)
Введение в Android-разработку (Lecture 06 – basics)Noveo
 
Android - 04 - Internship project introduction
Android - 04 - Internship project introductionAndroid - 04 - Internship project introduction
Android - 04 - Internship project introductionNoveo
 
Системы автоматизированной сборки (Lecture 05 – gradle)
Системы автоматизированной сборки (Lecture 05 – gradle)Системы автоматизированной сборки (Lecture 05 – gradle)
Системы автоматизированной сборки (Lecture 05 – gradle)Noveo
 
Что нужно знать начинающему разработчику на Android
Что нужно знать начинающему разработчику на AndroidЧто нужно знать начинающему разработчику на Android
Что нужно знать начинающему разработчику на AndroidIlya Blokh
 
Web-02-Intermediate PHP
Web-02-Intermediate PHPWeb-02-Intermediate PHP
Web-02-Intermediate PHPNoveo
 
Android - 14 - Geodata
Android - 14 - GeodataAndroid - 14 - Geodata
Android - 14 - GeodataNoveo
 
Web-01-Basic PHP
Web-01-Basic PHPWeb-01-Basic PHP
Web-01-Basic PHPNoveo
 
Android - 10 - Graphics
Android - 10 - GraphicsAndroid - 10 - Graphics
Android - 10 - GraphicsNoveo
 
AR открытки: дополненная реальность к 8 марта
AR открытки: дополненная реальность к 8 мартаAR открытки: дополненная реальность к 8 марта
AR открытки: дополненная реальность к 8 мартаEligoVision
 
Web Internship - PHP and MySQL
Web Internship - PHP and MySQLWeb Internship - PHP and MySQL
Web Internship - PHP and MySQLNoveo
 
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...Pavel Tsukanov
 
Android - 13 - Database
Android - 13 - DatabaseAndroid - 13 - Database
Android - 13 - DatabaseNoveo
 
Разработка мобильных приложений ДЛЯ ДЕТЕЙ
Разработка мобильных приложений ДЛЯ ДЕТЕЙРазработка мобильных приложений ДЛЯ ДЕТЕЙ
Разработка мобильных приложений ДЛЯ ДЕТЕЙEligoVision
 
Android - 06 - Gradle
Android - 06 - GradleAndroid - 06 - Gradle
Android - 06 - GradleNoveo
 

Destaque (20)

Android - 09 - Fragments
Android - 09 - FragmentsAndroid - 09 - Fragments
Android - 09 - Fragments
 
Лекция Android. Fragments, ActionBar, Drawer
Лекция Android. Fragments, ActionBar, DrawerЛекция Android. Fragments, ActionBar, Drawer
Лекция Android. Fragments, ActionBar, Drawer
 
Работа с графической подсистемой (Lecture 10 – Graphics)
Работа с графической подсистемой (Lecture 10 – Graphics)Работа с графической подсистемой (Lecture 10 – Graphics)
Работа с графической подсистемой (Lecture 10 – Graphics)
 
Web internship Yii Framework
Web internship  Yii FrameworkWeb internship  Yii Framework
Web internship Yii Framework
 
Database (Lecture 14 – database)
Database (Lecture 14 – database)Database (Lecture 14 – database)
Database (Lecture 14 – database)
 
Android - 08 - Action bar
Android - 08 - Action barAndroid - 08 - Action bar
Android - 08 - Action bar
 
Введение в Android-разработку (Lecture 06 – basics)
Введение в Android-разработку (Lecture 06 – basics)Введение в Android-разработку (Lecture 06 – basics)
Введение в Android-разработку (Lecture 06 – basics)
 
Android - 04 - Internship project introduction
Android - 04 - Internship project introductionAndroid - 04 - Internship project introduction
Android - 04 - Internship project introduction
 
Системы автоматизированной сборки (Lecture 05 – gradle)
Системы автоматизированной сборки (Lecture 05 – gradle)Системы автоматизированной сборки (Lecture 05 – gradle)
Системы автоматизированной сборки (Lecture 05 – gradle)
 
Что нужно знать начинающему разработчику на Android
Что нужно знать начинающему разработчику на AndroidЧто нужно знать начинающему разработчику на Android
Что нужно знать начинающему разработчику на Android
 
Web-02-Intermediate PHP
Web-02-Intermediate PHPWeb-02-Intermediate PHP
Web-02-Intermediate PHP
 
Android - 14 - Geodata
Android - 14 - GeodataAndroid - 14 - Geodata
Android - 14 - Geodata
 
Web-01-Basic PHP
Web-01-Basic PHPWeb-01-Basic PHP
Web-01-Basic PHP
 
Android - 10 - Graphics
Android - 10 - GraphicsAndroid - 10 - Graphics
Android - 10 - Graphics
 
AR открытки: дополненная реальность к 8 марта
AR открытки: дополненная реальность к 8 мартаAR открытки: дополненная реальность к 8 марта
AR открытки: дополненная реальность к 8 марта
 
Web Internship - PHP and MySQL
Web Internship - PHP and MySQLWeb Internship - PHP and MySQL
Web Internship - PHP and MySQL
 
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
 
Android - 13 - Database
Android - 13 - DatabaseAndroid - 13 - Database
Android - 13 - Database
 
Разработка мобильных приложений ДЛЯ ДЕТЕЙ
Разработка мобильных приложений ДЛЯ ДЕТЕЙРазработка мобильных приложений ДЛЯ ДЕТЕЙ
Разработка мобильных приложений ДЛЯ ДЕТЕЙ
 
Android - 06 - Gradle
Android - 06 - GradleAndroid - 06 - Gradle
Android - 06 - Gradle
 

Semelhante a Android - 07 - User Interface

Лекция 4
Лекция 4Лекция 4
Лекция 4itc73
 
Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Kuban Dzhakipov
 
Graduate Project: designing a web site and 3D application for Elby Adbertising
Graduate Project: designing a web site and 3D application for Elby AdbertisingGraduate Project: designing a web site and 3D application for Elby Adbertising
Graduate Project: designing a web site and 3D application for Elby AdbertisingAnna Kholina
 
JEE Conf: Архитектура Android приложений: полезные и вредные советы
JEE Conf: Архитектура Android приложений: полезные и вредные советыJEE Conf: Архитектура Android приложений: полезные и вредные советы
JEE Conf: Архитектура Android приложений: полезные и вредные советыdmalykhanov
 
Дмитрий Рыжков_WiDi Android Intel
Дмитрий Рыжков_WiDi Android IntelДмитрий Рыжков_WiDi Android Intel
Дмитрий Рыжков_WiDi Android IntelApps4All
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Tool View Interface of Integrated Development Environment / Исследование инте...
Tool View Interface of Integrated Development Environment / Исследование инте...Tool View Interface of Integrated Development Environment / Исследование инте...
Tool View Interface of Integrated Development Environment / Исследование инте...Ivan Ruchkin
 
тпцми лекция 3 браузеры
тпцми лекция 3 браузерытпцми лекция 3 браузеры
тпцми лекция 3 браузерыannuta123
 
тпцми лекция 3 браузеры
тпцми лекция 3 браузерытпцми лекция 3 браузеры
тпцми лекция 3 браузерыannuta123
 
DUMP-2012 - Проектирование интерфейсов - "Проектирование интерфейсов для моби...
DUMP-2012 - Проектирование интерфейсов - "Проектирование интерфейсов для моби...DUMP-2012 - Проектирование интерфейсов - "Проектирование интерфейсов для моби...
DUMP-2012 - Проектирование интерфейсов - "Проектирование интерфейсов для моби...it-people
 
Кроссплатформенная разработка
Кроссплатформенная разработкаКроссплатформенная разработка
Кроссплатформенная разработкаValery
 
{HSE Inc} Разработка под Android
{HSE Inc} Разработка под Android{HSE Inc} Разработка под Android
{HSE Inc} Разработка под AndroidPavel Krivoruchko
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоStanfy
 
Mobile Automation based on Appium
Mobile Automation based on AppiumMobile Automation based on Appium
Mobile Automation based on AppiumAnton Sirota
 
Верстка для Андроид
Верстка для АндроидВерстка для Андроид
Верстка для АндроидAlexey Ustenko
 
Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5DevDay
 
Живые обои для Android. Как создать. Тонкости. Продвижение
Живые обои для Android. Как создать. Тонкости. ПродвижениеЖивые обои для Android. Как создать. Тонкости. Продвижение
Живые обои для Android. Как создать. Тонкости. ПродвижениеSergey Mikhaylov
 

Semelhante a Android - 07 - User Interface (20)

Лекция 4
Лекция 4Лекция 4
Лекция 4
 
Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?
 
Graduate Project: designing a web site and 3D application for Elby Adbertising
Graduate Project: designing a web site and 3D application for Elby AdbertisingGraduate Project: designing a web site and 3D application for Elby Adbertising
Graduate Project: designing a web site and 3D application for Elby Adbertising
 
JEE Conf: Архитектура Android приложений: полезные и вредные советы
JEE Conf: Архитектура Android приложений: полезные и вредные советыJEE Conf: Архитектура Android приложений: полезные и вредные советы
JEE Conf: Архитектура Android приложений: полезные и вредные советы
 
Дмитрий Рыжков_WiDi Android Intel
Дмитрий Рыжков_WiDi Android IntelДмитрий Рыжков_WiDi Android Intel
Дмитрий Рыжков_WiDi Android Intel
 
Lec 9
Lec 9Lec 9
Lec 9
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Tool View Interface of Integrated Development Environment / Исследование инте...
Tool View Interface of Integrated Development Environment / Исследование инте...Tool View Interface of Integrated Development Environment / Исследование инте...
Tool View Interface of Integrated Development Environment / Исследование инте...
 
тпцми лекция 3 браузеры
тпцми лекция 3 браузерытпцми лекция 3 браузеры
тпцми лекция 3 браузеры
 
тпцми лекция 3 браузеры
тпцми лекция 3 браузерытпцми лекция 3 браузеры
тпцми лекция 3 браузеры
 
Лекция Android
Лекция AndroidЛекция Android
Лекция Android
 
DUMP-2012 - Проектирование интерфейсов - "Проектирование интерфейсов для моби...
DUMP-2012 - Проектирование интерфейсов - "Проектирование интерфейсов для моби...DUMP-2012 - Проектирование интерфейсов - "Проектирование интерфейсов для моби...
DUMP-2012 - Проектирование интерфейсов - "Проектирование интерфейсов для моби...
 
Кроссплатформенная разработка
Кроссплатформенная разработкаКроссплатформенная разработка
Кроссплатформенная разработка
 
{HSE Inc} Разработка под Android
{HSE Inc} Разработка под Android{HSE Inc} Разработка под Android
{HSE Inc} Разработка под Android
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Mobile Automation based on Appium
Mobile Automation based on AppiumMobile Automation based on Appium
Mobile Automation based on Appium
 
Верстка для Андроид
Верстка для АндроидВерстка для Андроид
Верстка для Андроид
 
Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5
 
Me12 usabiliti-mobile
Me12 usabiliti-mobileMe12 usabiliti-mobile
Me12 usabiliti-mobile
 
Живые обои для Android. Как создать. Тонкости. Продвижение
Живые обои для Android. Как создать. Тонкости. ПродвижениеЖивые обои для Android. Как создать. Тонкости. Продвижение
Живые обои для Android. Как создать. Тонкости. Продвижение
 

Mais de Noveo

Гуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрииГуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрииNoveo
 
Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Noveo
 
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Noveo
 
Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Noveo
 
Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Noveo
 
Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Noveo
 
Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)Noveo
 
Yii2
Yii2Yii2
Yii2Noveo
 
Сессии и авторизация
Сессии и авторизацияСессии и авторизация
Сессии и авторизацияNoveo
 
Rest
RestRest
RestNoveo
 
PHP basic
PHP basicPHP basic
PHP basicNoveo
 
PHP Advanced
PHP AdvancedPHP Advanced
PHP AdvancedNoveo
 
PHP and MySQL
PHP and MySQLPHP and MySQL
PHP and MySQLNoveo
 
MySQL
MySQLMySQL
MySQLNoveo
 
Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Noveo
 
RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)Noveo
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Noveo
 
Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Noveo
 
Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)Noveo
 
Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Noveo
 

Mais de Noveo (20)

Гуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрииГуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрии
 
Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)
 
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
 
Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)
 
Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)
 
Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)
 
Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)
 
Yii2
Yii2Yii2
Yii2
 
Сессии и авторизация
Сессии и авторизацияСессии и авторизация
Сессии и авторизация
 
Rest
RestRest
Rest
 
PHP basic
PHP basicPHP basic
PHP basic
 
PHP Advanced
PHP AdvancedPHP Advanced
PHP Advanced
 
PHP and MySQL
PHP and MySQLPHP and MySQL
PHP and MySQL
 
MySQL
MySQLMySQL
MySQL
 
Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)
 
RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)
 
Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)
 
Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)
 
Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)
 

Android - 07 - User Interface

  • 1. Android User Interface Android Internship 2014 Роман Савин
  • 2. Android User Interface UI Overview • Весь графический интерфейс строится из объектов классов View и ViewGroup • View - нечто, что может быть нарисованно на экране и с чем пользователь может взаимодействовать • ViewGroup - наследник View, содержит в себе другие View и определяет как они будут расположенны относительно друг друга • AdapterView - особый наследник ViewGroup, дочерние элементы которого задаются с помощью Adapter’a
  • 4. Android User Interface Declaring Views • Дерево View может быть создано прямо в коде • Более простой и предпочтительный способ - использовать XML • Это декларативно (говорим что делать, а не как) • Позволяет отделить графический интерфейс и логику • Меньше усилий и более читабельно • Переиспользуемо • Для разных конфигураций могут быть созданы разные XML файл, при этом коду знать об этом не обязательно
  • 5. Android User Interface Attributes • В xml поведение отдельного View можно настраивать с помощью аттрибутов • Существует набор аттрибутов общих для всех View • Почти каждый наследник View имеет свой собственный набор специфичных для него аттрибутов • Можно создавать свои собственные аттрибуты • Часто для каждого аттрибута существуют соответствующие ему методы
  • 6. Android User Interface Common Attributes • android:id - уникальный идентификатор • android:layout_width - ширина элемента • android:layout_height - высота элемента • android:layout_margin - отступы снаружи элемента • android:padding - отступы внутри элемента • android:layout_gravity - расположение элемента внутри родителя • android:gravity - расположение контента внутри элемента • android:visibility - показывать элемент или нет • android:background - фоновое изображение
  • 7. Android User Interface Dimension Units • px - реальные пиксели на экране • pt - points, 1/72 дюйма • mm – миллиметры • in – дюймы • dip - density independent pixels. Количество пикселей одном dip зависит от плотности экрана • sp - scaled pixels. Аналогичны dip + размер зависит от выбранного размера шрифта пользователем • процентов нет
  • 9. Android User Interface Drawable Types • ColorDrawable - просто цвет • BitmapDrawable - просто картинка • NinePatchDrawable - картинка, которая умеет растягиваться • StateListDrawable - меняет свой контент в зависимости от состояния
  • 10. Android User Interface Common Views • TextView - текстовое поле. Нередактируемое • EditText - редактируемое текстовое поле • ImageView – картинка • Button – кнопочка • CheckBox - галочка
  • 11. Android User Interface TextView Attributes • android:text – текст • android:textSize – размер • android:textColor – цвет • android:textStyle - стиль (bold, italic, monospace) • android:singleLine - максимум одна строка текста • android:maxLines - максимальное число строк текста • android:ellipsize - что делать, если текст слишком длинный
  • 12. Android User Interface EditText Attributes • android:hint - подсказка, видна пока EditText пустой • android:textColorHint - цвет подсказки • android:inputType - тип клавиатуры (email, телефон и т.д.) • android:digits - список допустимых символов
  • 13. Android User Interface ImageView Attributes • android:src - что показывать • android:scaleType - как масштабировать • android:adjustViewBounds - меняем размеры View в зависимости от размеров каритнки
  • 14. Android User Interface Input Handling • View.setOnClickListener • View.setOnLongClickListener • View.setOnFocusChangeListener • View.setOnTouchListener • TextView.addTextChangedListener • CompoundButton.setOnCheckedChangeListener
  • 15. Android User Interface Common Layouts • FrameLayout - рисует дочерние View поверх друг друга • LinearLayout - выстраивает свои элементы в одну линию • RelativeLayout - хитро располагает элементы относительно друг друга • GridLayout - дочерние View располагаются по сеточке • ScrollView - добавляет скролл, если контент слишком большой
  • 16. Android User Interface ListView • Отображение вертикального списка однотипных данных • Переиспользует созданные вьюхи • Можно добавлять хедеры и футеры • Необходимо использовать класс Adapter
  • 17. Android User Interface BaseAdapter Необходимо переопределить: • int getCount() • getItem(int position) • getItemId(int position) • getView(int position, View convertView, ViewGroup parent)
  • 18. Android User Interface Common Adapters • ArrayAdapter • CursorAdapter • SimpleAdapter
  • 19. Android User Interface Дополнительные ссылки • http://developer.android.com/guide/topics/ui/index.html • http://developer.android.com/training/best-ui.html • http://developer.android.com/training/improving-layouts/index.html