自定义View初步理解(一)

1.自定义View简介:
可以认为继承自View,系统没有的效果,extends View exdents ViewGroup
extends View:

2.onMeasure()
//获取宽高模式
final int widthModes = MeasureSpec.getMode(widthMeasureSpec);
final int heightModes = MeasureSpec.getMode(heightMeasureSpec);
//获取宽高的值
final int widthSize = MeasureSpec.getSize(widthMeasureSpec);
final int heightSize = MeasureSpec.getSize(heightMeasureSpec);

MeasureSpec.AT_MOST//在布局中指定了wrap_content
MeasureSpec.EXACTLY//在不居中指定确切的值 100dp match_content fill_content
MeasureSpec.UNSPECIFIED//尽可能的大,很少用到
ScrollView + ListView 显示不全就是这个原因 测试量布局进入MeasureSpec.UNSPECIFIED
修改方法:重写.onMeasure() 进入 MeasureSpec.AT_MOST 然后右移两位


image.png

3.onDraw


image.png

4.onTouchEvent
责任链模式


image.png

这个方法响应了触摸屏幕发生的事件,当我们需要和用户交互的时候需要
MotionEvent.ACTION_DOWN://按下
MotionEvent.ACTION_MOVE://移动
MotionEvent.ACTION_UP://松开

5.自定义属性
自定义属性就是用于配置
5.1在res下的values 下面attrs.xml 自定义自己属性


image.png

5.2在布局中使用
声明命名空间,然后再自定义中使用


image.png

image.png

5.3在自定义中获取属性


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容