Android 自定义View 测量控件大小onMeasure中MeasureSpec作用
2017-03-17 15:41
495 查看
在自定义view中onMeasure 里面利用MeasureSpec来完成控件的测量是必不可免的
MeasureSpec中方法很少,其中只有getSize,getMode,makeMeasureSpec三个放法提供给我们调用
getSize 需要传入一个int类型的值,而这个值就有讲究了,它里面包含了具体的size数值和mode类型,所以我们一般就通过getSize这个方法来获取这个值里面的size大小
getMode 和getSize是一样的,getMode是用来获取这个值里面的mode模式,而这个mode有三
makeMeasureSpec 方法需要传入两个int类型的值,第一个就是Size,第二个就是Mode,而我们通过这个方法就是来构建我们上面getSize,getMode中传入的既包含Size又包含Mode的int类型的值的
用法
我们一般通过这种用法就可以知道我们在xml中设置的模式,与大小。然后就可以在onMeasure方法里面测量控件的整体大小了
MeasureSpec中方法很少,其中只有getSize,getMode,makeMeasureSpec三个放法提供给我们调用
getSize 需要传入一个int类型的值,而这个值就有讲究了,它里面包含了具体的size数值和mode类型,所以我们一般就通过getSize这个方法来获取这个值里面的size大小
getMode 和getSize是一样的,getMode是用来获取这个值里面的mode模式,而这个mode有三
UNSPECIFIED 表示未指定大小模式
EXACTLY 表示指定了精确值模式
AT_MOST 表示容器最大模式
makeMeasureSpec 方法需要传入两个int类型的值,第一个就是Size,第二个就是Mode,而我们通过这个方法就是来构建我们上面getSize,getMode中传入的既包含Size又包含Mode的int类型的值的
用法
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // super.onMeasure(widthMeasureSpec, heightMeasureSpec); //获取宽度的模式与具体大小 int widthSize = MeasureSpec.getSize(widthMeasureSpec); int widthMode = MeasureSpec.getMode(widthMeasureSpec); //获取高度的模式与具体大小 int heightSize = MeasureSpec.getSize(heightMeasureSpec); int heightMode = MeasureSpec.getMode(heightMeasureSpec); }
我们一般通过这种用法就可以知道我们在xml中设置的模式,与大小。然后就可以在onMeasure方法里面测量控件的整体大小了
相关文章推荐
- (转)Android自定义View(三、深入解析控件测量onMeasure)
- [置顶] Android自定义View(三、深入解析控件测量onMeasure)
- Android自定义View(三、深入解析控件测量onMeasure)
- Android自定义View(三、深入解析控件测量onMeasure)
- Android自定义View(三、深入解析控件测量onMeasure)
- (总结篇)Android 牛不牛?决定于自定义View控件(一)——view绘制流程(onMeasure,onLayout,onDraw)
- android绘制自定义view时,控件大小的测量与确定问题,代码演示
- 快速理解android View的测量onMeasure()与MeasureSpec
- android绘制自定义view时,控件大小的测量与确定问题
- Android之自定义View,你需要了解和掌握的onMeasure测量规则
- Android中自定义View的onMeasure以及MeasureSpec使用
- Android 自定义View 之测量过程(onMeasure)
- Android中View的绘制过程 onMeasure方法简述 附有自定义View例子
- Android自定义View onMeasure
- Android中View的绘制过程 onMeasure方法简述 附有自定义View例子
- Android 自定义View onMeasure理解
- Android开发之View重写相关API-onLayout,onMeasure,MeasureSpec
- Android 自定义View 中的OnMeasure的用法
- android 自定义view中onMeasure()理解
- Android自定义视图系列----------- 计算view大小(measure)