自定义View之基础知识

86 阅读1分钟

什么是View

View是Android中各种组件的基类,表现为屏幕上的各种视图。

自定义View的分类

  • 自定义View
  • 自定义ViewGroup

自定义View时的关键方法

  • onMeasure 测量
  • onLayout 布局
  • onDraw 绘制

View在安卓系统中的定位

image.png

View坐标

image.png

  • left 从View左边界到父View左边界的距离
  • top 从View上边界到父View上边界的距离
  • right 从View右边界到父View左边界的距离
  • bottom 从View下边界到父View上边界的距离

MeasureSpec 测量规格

MeasureSpec代表了一个32位的int值,高2位代表了SpecMode(测量模式),低30位代表了SpecSize(测量大小)。

SpecMode分为3类:

  • UNSPECIFIED 未指定 父容器不对View有任何限制,自定义View一般用不到
  • EXACTLY 准确值 父容器检测出View所需要的精确大小
  • AT_MOST 最大值 View不能超过父容器指定的一个最大值

LayoutParams 布局参数

子View的MeasureSpec需要View自己的LayoutParams和父容器的MeasureSpec共同确定。 对于顶级View(DecorView)来说,他的MeasureSpec由窗口的尺寸和他自己的LayoutParams共同确定,对于普通View来说,其MeasureSpec由父容器的MeasureSpec和自身的LayoutParams来共同确定。