您的位置:首页 > 移动开发 > Android开发

Android自定义控件

2016-06-12 21:06 459 查看
一、MeasureSpec

获取测量大小:MeasureSpec.getSize(measureSpec)

获取测量模式:MeasureSpec.getMode(measureSpec)

SpecMode:

- UNSPECIFIED:未指定,没有限制

- EXACTLY:精确模式。对应于LayoutParams中的match_parent和具体数值两种模式;

- AT_MOST:最大模式。对应于LayoutParams中的wrap_content,View的大小不能大于这个值;

普通View的MeasureSpec和父容器的MeasureSpec和自身的LayoutParams,以及View的margin和padding有关

View采用固定宽/高时,无论父容器是什么模式,View都是精确模式,大小遵循LayoutParams的值;

当View采用match_parent时,如果父容器是精确模式,View是精确模式,大小是父容器剩余空间大小,如果父容器是最大模式,View是最大模式,大小不超过父容器剩余空间大小;

当View采用wrap_content时,无论父容器是精确模式还是最大模式,View都是最大模式,大小不超过父容器剩余空间大小;

二、自定义View的分类

1.继承View,重写onMeasure和onDraw方法

2.继承特定的View

3.继承ViewGroup,重写onMeasure和onDraw方法

4.继承特定的ViewGroup
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: