自定义View

 View的职责,根据测量模式和ViewGroup给出的建议的宽和高,计算出自己的宽和高;同时还有个更重要的职责是:在ViewGroup为其指定的区域内绘制自己的形态。

自定义view广义的来说自己实现的一种新的布局就叫自定义的view,一般的自定义view就是自己创建一个类继承view,ViewGroup或者已有的控件.自定义view的步骤如下:

  1. 自定义一个CustomView(extends View )类
  2. 编写values/attrs.xml,在其中编写styleable和item等标签元素
  3. 在布局文件中CustomView使用自定义的属性(注意namespace)
  4. 在CustomView的构造方法中通过TypedArray获取
  5. 重写onmesarue方法
  6. 重写onlayout方法,一般不用,继承viewgroup才要
  7. 重写onDraw方法
  8. 可以添加点击,滑动(ontouchEvent)事件,然后在利用接口写回调方法.

View的绘制过程:

1.mesarue()测量过程
系统调用mesarue()方法来测量,里面调用的是Onmesarue(),mesarue()方法是final的不可以重写,我们只能重写o’nMesarue()方法.
主要作用:为整个View树计算实际的大小,即设置实际的高(对应属性:mMeasuredHeight)和宽(对应属性: mMeasureWidth),每个View的控件的实际宽高都是由父视图和本身视图决定的
如果是wrap_..就要重写这个方法.或者有要按比例动态设置大小的也可以重写,比如viewpager的高
2.layout()布局过程
主要作用 :为将整个根据子视图的大小以及布局参数将View树放到合适的位置上。这个位置不是指界面上的位置而是指view数层上的位置.
3,draw()绘制过程,可以控制要绘制什么,绘制在界面上的什么位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值