Android 自定义View measure模板
来源:互联网 发布:复合增长率算法 编辑:程序博客网 时间:2024/05/21 15:49
使用自定义View的时候,我们往往会重载onMeasure函数, 用多了之后,发现其实都是一套写法,因此记录下这个模板.
public class MyView extends View {public MyView(Context context) {super(context);}public MyView(Context context, AttributeSet attrs) {super(context, attrs);}//计算宽private int measureWidth(int measureSpec){int result = 0;int mode = MeasureSpec.getMode(measureSpec);int size = MeasureSpec.getSize(measureSpec);if(mode == MeasureSpec.EXACTLY) //当指定了控件大小或者使用Match_Parent{result = size; }else{//可以用下面的函数将dp转换成px//float pxValue = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpValue, getResources().getDisplayMetrics());result = 100; // 单位是像素,这里写上自己计算的控件大小if(mode == MeasureSpec.AT_MOST) //一般使用Wrap_Content会进入这个条件{result = Math.min(result, size);}}return result;}//计算高private int measureHeight(int measureSpec){int result = 0;int mode = MeasureSpec.getMode(measureSpec);int size = MeasureSpec.getSize(measureSpec);if(mode == MeasureSpec.EXACTLY) //当指定了控件大小或者使用Match_Parent{result = size; }else{//可以用下面的函数将dp转换成px//float pxValue = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpValue, getResources().getDisplayMetrics());result = 100; // 单位是像素,这里写上自己计算的控件大小if(mode == MeasureSpec.AT_MOST) //一般使用Wrap_Content会进入这个条件{result = Math.min(result, size);}}return result;}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {setMeasuredDimension(measureWidth(widthMeasureSpec), measureHeight(heightMeasureSpec));}}
0 0
- Android 自定义View measure模板
- Android自定义view之Measure
- Android View measure (二) 自定义UI控件measure相关
- 自定义View Measure过程
- 自定义View Measure过程
- 自定义View Measure过程
- 自定义 view 一 (measure)
- android View.measure
- Android View measure过程
- android View.measure()初探
- Android View的Measure
- Android View-measure
- Android自定义视图系列----------- 计算view大小(measure)
- 我的Android笔记--自定义View的measure
- Android自定义view之measure、layout、draw三大流程
- Android自定义view浅谈(二) measure layout 和draw
- 【自定义view系列】View的measure过程
- android-->自定义view,TopBar模板
- 支持向量机SVM(二)
- LeetCode Divide Two Integers
- Recognizer API
- Leetcode 219 Contains Duplicate II
- 程序实现自己删除
- Android 自定义View measure模板
- linux sort,uniq,cut,wc命令详解
- 二叉树相关公用方法
- linux键盘驱动详解等链接
- Android 自定义 HorizontalScrollView 横向滑动效果
- ubuntu/var/log/下各个日志文件
- 零散知识:字节数&CAD图形刷洗&面向对象
- 离线信号与连续信号伸缩变换的不同
- PB MD5