Android视图的渲染过程:首先测量出view的大小、然后在布局流程中确定view到底要在哪个位置,最后的绘制流程就是把前面所得到的绘制到屏幕上。
View的位置:getLeft(),getTop(),这两个坐标是以它的父View的左上角为坐标原点,单位为px,那么父类的则是以屏幕的衡量
getMeasuredWidth()获取的是view原始的大小,也就是这个view在XML文件中配置或者是代码中设置的大小。getWidth()获取的是这个view最终显示的大小,这个大小有可能等于原始的大小也有可能不等于原始大小
View的大小:View的大小有两对值来表示。getMeasureWidth()和getMesureHeight()(这个值是一个8位的十六进制的数字)这组值表示该View在它的父View里期望的大小值,在measure()方法完成后获得。 getWidth()/getHeight()这组值表示了该View在屏幕上的实际大小,在draw()方法完成后可获得。
View的大小最终由子View的LayoutParams与父View的测量要求公共决定,测量要求指的 就是这个MeasureSpec,它是一个32位int值。
高2位:SpecMode 通过 MeasureSpec.getMode(measureSpec)方法获取测量模式
低30位:SpecSize 通过 MeasureSpec.getSize(measureSpec) 方法获取特定测量模式下的大小