欢迎使用CSDN-markdown编辑器

来源:互联网 发布:找不到windows hello 编辑:程序博客网 时间:2024/06/04 00:36

Android onMeasure函数参数剖析

简介

Android上onMeasure回调函数是给View计算自己的大小的.在Android的View绘制体系中,onMeasure的地位非常不要啊扥奥赛发AD森重要.View.java中onMeasure函数的定义如下 :

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {    ​setMeasuredDimension(getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec),​    ​    ​getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec));}

我们可以看到onMeasure函数接收两个int参数,这两个int其实是MeasureSpen类生成的.下面我们看看MeasureSpec类
的定义:

public static class MeasureSpec {        private static final int MODE_SHIFT = 30;        private static final int MODE_MASK  = 0x3 << MODE_SHIFT;        public static int makeMeasureSpec(int size, int mode) {            if (sUseBrokenMakeMeasureSpec) {                return size + mode;            } else {                                                
0 0