onMeasure()方法及控件的绘制
来源:互联网 发布:知汇云软件 编辑:程序博客网 时间:2024/06/10 17:56
在这个方法中,super.onMeasure()调用后将可以得到控件的宽高。
控件的onMeasure(),Onlayout()方法会被执行多次,注意这里面执行的逻辑
不要被多次执行了。
要绘制控件,分为两步
1.在onmeasure()方法中绘制好控件的大小
2.在lonlayout方法里布局好控件的位置用view.layout(left,top,right,bottm)
在OnMeasure()中
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
int heightMode = MeasureSpec.getMode(heightMeasureSpec);
OnMeasure()的两个参数widthMeasureSpec,heightMeasureSpec里包含了
控件的长度和测量模式。
测量模式有MeasureSpec.EXACTLY,MeasureSpec.ATMOST,MeasureSpec.EXACTLY,MeasureSpec.UNSPECIFIED
得出的测量模式和在布局文件里的layout-width ,layout-height设置的属性有关
当属性值为fillparent,具体数值时,mode为MeasureSpec.EXACTLY
当属性值为wrapcontent时,mode为MeasureSpec.ATMOST
MeasureSpec.UNSPECIFIED模式很少用,意思为想设置多大就多大
最后可以为空间指定大小 setMeasuredDimension();这个方法里的参数是数值,不包含测量模式
还有另外一种方法去控制控件的大小
leftlayout.measure(sideWidth, heightMeasureSpec);
这里的参数是带有测量模式的
int sideWidth=MeasureSpec.makeMeasureSpec((int)(MaxWidth*0.5),MeasureSpec.EXACTLY);
这个是制作带有测量模式的长度值
0 0
- onMeasure()方法及控件的绘制
- 自定义控件的onMeasure方法详解
- Android的View绘制过程,onMeasure()方法介绍
- Android中View的绘制过程 onMeasure方法
- Android中View的绘制过程 onMeasure方法简述
- Android中View的绘制过程 onMeasure和onLayout()方法
- Android中View的绘制过程 onMeasure方法简述
- 自定义控件---OnMeasure()方法分析
- 重写控件什么时候调用Android的onMeasure方法??
- 对Android自定义控件中的onMeasure方法的理解
- 自定义控件:onMeasure 方法和测量原理的理解
- Android自定义控件onMeasure方法简单的重写
- 自定义绘制控件的方法
- View的onMeasure方法
- View 的onMeasure方法
- Android的onMeasure方法
- android 的onMeasure方法
- listview的onmeasure方法
- C++函数默认参数, 函数重载, 函数模板
- Android View 仿iOS SwitchButton [Material Design]
- mysql学习笔记之优化篇(二)之参数-磁盘-应用调优
- iOS 性能调优,成为一名合格iOS程序员必须掌握的技能
- 数据结构 图的基本操作实现
- onMeasure()方法及控件的绘制
- SSH Secure Shell Client简单实用方法
- php获取自然周自然月,周几,月,周第一天,最后一天总结
- 设计模式
- JZOJ4868. 【NOIP2016提高A组集训第9场11.7】Simple
- 优酷的菜单效果
- noip模拟题11.7
- GeoHash核心原理解析
- Ubuntu 16.04.1下配置 NFS & Samba 服务器