Android осень 2013 лекция 7

393 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
393
On SlideShare
0
From Embeds
0
Number of Embeds
160
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Android осень 2013 лекция 7

  1. 1. Android GUI. Touch Handling. Лекция № 7
  2. 2. View  Элементарный элемент UI  Прямоугольник  Сам себя рисует  Ловит события  Базовый класс для всех виджетов  Упорядочены в дерево  http://developer.android.com/reference/android/vie w/View.html 2
  3. 3. ViewGroup  Layout  Невидимый сам по себе  LayoutParams  Сказать родительскому ViewGroup, как хотят располагаться view  Разные сабклассы для разных Layout  Управление жестами  http://developer.android.com/reference/android/vie w/ViewGroup.html 3
  4. 4. Есть у любого View  Focus  Visibility  Paddings  Margins  Listeners  Id  Background 4
  5. 5. Кастомизация View  Основные методы  onMeasure  onLayout  onDraw  Конструктор 5
  6. 6. Measure pass  Проходит по всему дереву от корня  В конце каждая view знает свой размер(ширина и высота)  measure() может вызываться несколько раз  Метод onMeasure() вызывается из measure()  Должны вызвать setMeasuredDimension(int, int)  Два вспомогательных класса:  LayoutParams  MeasureSpec  UNSPECIFIED  EXACTLY  AT_MOST 6
  7. 7. Measure pass - MeasureSpec  Определяет требования родительского view к дочернему  Состоит из size и mode  UNSPECIFIED  Родителю все равно какого размера ребенок  EXACTLY  Родитель точно указывает, каких он хочет размеров  AT_MOST  Не больше чем указанный размер 7
  8. 8. Кастомизация ViewGroup  onLayout (boolean changed, int left, int top, int right, int bottom)  Вызываем у детей measure с MeasureSpec  Вызываем у детей layout  generateLayoutParams()  checkLayoutParams() 8
  9. 9. Custom attributes  Кастомные атрибуты для View и ViewGroup  Можно объявлять в xml 9
  10. 10. Touch Handling 10

×