Android View绘制机制基础(二)
2017-06-02 15:03
357 查看
什么是View?
View 是Android中的所有控件的基类,不管是简单的Button还是复杂的RelativeLayout和ListView,他们共同基类都是View。所以说,View是一种界面层的控件的一种抽象,它代表了一个控件。除了View之外,还有ViewGroup,它可以被翻译为控件组,ViewGroup内部包含了许多控件,即一组View。在Android设计中ViewGroup也继承View,这就意味着View本身就可以是单个控件也可以是多个控件组成的一组控件,通过这种关系就形成了View树的结构。可以简单的举个例子:根据上面这个概念,我们知道,Button显然是个View,而LinearLayout不但是一个View而且还是一个ViewGroup,而ViewGroup内部可以有子View的,这个子View同样同样还可以是ViewGroup,以此类推。
如果不理解我们可以继续看图:
自定义textview
从图中右边红色区域可以看出:
TestTextView是一个View,他继承了AppCompatTextView,而AppCompatTextView继承自TextView,而TextView直接继承自View,同理我们也可以构造一个继承自ViewGroup的控件。
如图:
自定义ViewGroup
大家可以自己去尝试自定义,Android studio 中Ctrl+H可以查看自定义类的集成体系。
View的位置参数
View的位置坐标和父容器的关系
从上图中不难看出View的位置主要由它的四个顶点来决定,分别对应View的四个属性:top、left、right、bottom。top是左上角的纵坐标,left是左上角的横坐标,bottom是右下角的纵坐标,right是右下角的横坐标。值得注意的是,这些坐标都是相对于View的父容器而言的,是一种相对的坐标。
上面理解了以后,我们就很容易获取View的宽高和坐标的关系:
width = right - left
height = bottom - top
获取View的四个基本参数的方法
Left = getLeft();Right = getRight();
Top = getTop();
Bottom = getBottom();
3.0开始View增加了几个额外的参数
x、y、translationX和translationY,其中x、y是View做上角的坐标,而translationX和translationY是View左上角角相对于父容器的偏移量。几个参数的换算关系如下:
x = left + translationX
y = top+ translationY
在view平移过程中,top和left表示的是原始的左上角坐标,是值是不会变得,此时改变的是x、y、translationX和translationY四个参数。
相关文章推荐
- Android View绘制机制基础(一)
- Android View绘制机制基础(三)
- Android UI 绘制机制之View创建过程
- Android View绘制机制
- Android中View 绘制机制
- 基础篇-View事件传递与绘制机制,自定义View实现理解
- Android 中View的绘制机制源代码分析 三
- Android View绘制机制分析
- Android View的绘制机制流程深入详解(一)
- Android绘图机制(一)——自定义View的基础属性和方法
- Android View的绘制机制流程深入详解(三)
- Android实现机制(二)——View绘制机制
- Android 中View的绘制机制源码分析 二
- Android绘图机制(一)——自定义View的基础属性和方法
- android SurfaceView绘制 重新学习--基础绘制
- Android View 与ViewGroup绘制即事件分发机制
- Android 中View的绘制机制源码分析 四
- 从源码角度分析Android View的绘制机制(一)
- Android 自定义View基础-View的绘制
- android应用程序窗口框架学习(2)-view绘制流程源代码解析-setContentView与LayoutInflater加载解析机制源码分析