viewgroup onMeasure例子
来源:互联网 发布:黑色星期五 软件 编辑:程序博客网 时间:2024/06/05 09:59
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int measureWidth = MeasureSpec.getSize(widthMeasureSpec); int measureHeigth = MeasureSpec.getSize(heightMeasureSpec); setMeasuredDimension(measureWidth, measureHeigth); // TODO Auto-generated method stub for(int i= 0;i<getChildCount();i++){ View v = getChildAt(i); Log.v(TAG, "measureWidth is " +v.getMeasuredWidth() + "measureHeight is " +v.getMeasuredHeight()); int widthSpec = 0; int heightSpec = 0; LayoutParams params = v.getLayoutParams(); if(params.width > 0){ widthSpec = MeasureSpec.makeMeasureSpec(params.width, MeasureSpec.EXACTLY); }else if (params.width == -1) { widthSpec = MeasureSpec.makeMeasureSpec(measureWidth, MeasureSpec.EXACTLY); } else if (params.width == -2) { widthSpec = MeasureSpec.makeMeasureSpec(measureWidth, MeasureSpec.AT_MOST); } if(params.height > 0){ heightSpec = MeasureSpec.makeMeasureSpec(params.height, MeasureSpec.EXACTLY); }else if (params.height == -1) { heightSpec = MeasureSpec.makeMeasureSpec(measureHeigth, MeasureSpec.EXACTLY); } else if (params.height == -2) { heightSpec = MeasureSpec.makeMeasureSpec(measureWidth, MeasureSpec.AT_MOST); } v.measure(widthSpec, heightSpec); } }
首先判断params.width的值是多少,有三种情况。
如果是大于零的话,及传递的就是一个具体的值,那么,构造MeasupreSpec的时候可以直接用EXACTLY。
如果为-1的话,就是MatchParent的情况,那么,获得父View的宽度,再用EXACTLY来构造MeasureSpec。
如果为-2的话,就是wrapContent的情况,那么,构造MeasureSpec的话直接用一个负数就可以了。
0 0
- viewgroup onMeasure例子
- 自定义ViewGroup onMeasure onLayout
- View、ViewGroup之onMeasure
- (4.1.37.4)两个简单的例子让你搞懂View和ViewGroup的OnMeasure()
- 复写ViewGroup之OnLayout onMeasure
- android中ViewGroup中onMeasure()方法 .
- ViewGroup的onMeasure和onLayout分析
- ViewGroup的onMeasure和onLayout分析
- 继承ViewGroup重写onMeasure方法的详解
- 继承ViewGroup重写onMeasure方法的详解
- ViewGroup的onMeasure和onLayout分析
- ViewGroup的onMeasure和onLayout分析
- ViewGroup的onMeasure和onLayout分析
- ViewGroup之onMeasure方法和onLayout方法
- ViewGroup的onMeasure()的学习记录
- 自定义view,viewgroup的onMeasure 方法
- View,ViewGroup的onMeasure与onLayout
- 【Tech-Android-View】android中ViewGroup中onMeasure()方法
- 670个常用的Python库和示例代码
- verilog specify功能
- 把ppt格式转成pdf的方法有哪些
- iOS开发 - XCode设置断点与编辑断点
- Centos7.1.1503中文编码下,tomcat service命令不支持UTF-8
- viewgroup onMeasure例子
- 高效率的文件复制的Java代码
- 程序员编程生涯中会犯的7个错误
- bootstrap v3学习笔记之全局css样式
- ionic 项目中创建侧边栏的具体流程分4步简单学会
- VMware下安装Ubuntu15.04后设置root密码
- HDOJ 1007
- Java中的值传递和引用传递
- html基础--标签,属性,文本格式化标签,计算机输出标签,引用和术语定义