Android 自定义控件需要掌握哪些

下面写的不分先后顺序:
自定义View 里面方法的调用顺序
http://blog.csdn.net/mchenys/article/details/50408819

Android View的生命周期
http://www.jianshu.com/p/08e6dab7886e

下面会更新相关的博客
  1. 应该掌握Androd的动画,属性动画,常用的四种动画
    Android应用开发之所有动画使用详解
    http://blog.csdn.net/yanbober/article/details/46481171
    浅析Android动画(二),属性动画高级实例探究
    http://www.cnblogs.com/wondertwo/p/5312482.html
    Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
    http://blog.csdn.net/guolin_blog/article/details/43816093
    属性动画的坐标
    http://www.lightskystreet.com/2014/12/10/propertyview-anim-practice/
    Android 属性动画使用解析-属性动画高级用法
    http://www.sunnyang.com/401.html
    http://blog.csdn.net/lmj623565791/article/details/38067475
  2. Android的事件分发机制
  3. 自定义View常用的一些方法
  4. 自定义ViewGroup
自定义ViewGroup时,需要重写onMeasure和onLayout方法
1、onLayout原理及源码解析:
源码解析Android中View的layout布局过程 
http://blog.csdn.net/iispring/article/details/50366021
http://legendmohe.net/2015/05/25/onmeasure%E5%92%8Conlayou
/**
  * 就是当前的ViewGroup距离父控件的,左上右下的距离
  * @param changed
  * @param l
  * @param t
  * @param r
  * @param b
  */
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)

2、在自定义View时通常会去重写View的onMeasure方法去得到控件的宽和高,在onMeasure方法中,MeasureSpec是一个常用的类,MeasureSpec学习心得
http://chenfuduo.me/2016/04/07/MeasureSpec%E5%AD%A6%E4%B9%A0%E5%BF%83%E5%BE%97/

3、在onMeasure方法里面需要支持EXACTLY、AT_MOST两种
http://blog.csdn.net/lmj623565791/article/details/38339817
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1002/3540.html
 /**
         * 区别: measureChild与measureChildren
         * measureChild 是测量单个View,如果使用循环来测量,只要是当前ViewGroup下不管是可见还是不可见的都进行测量
         *
         * 用measureChildren() 方法来简化onMeasureChild(widthMeasureSpec,heightMeasureSpec)上面的代码
         * 这个方法将自动遍历所有子view并让它们测量自己。这个方法还可以忽略那些visibility 设置为gone的子view,因此它支持visibility gone标志
         *
         */

目前,margins还不能工作。如果我们想支持margins,可以在我们容器的onLayout 里面添加它们而不是在测量一个子view的时候去考虑margins

我们就能使用setMeasuredDimension()来设置容器的宽度和高度
  1. 触摸相关工具类全解
  2. 自定义View的一些常用
Android 自定义View onMeasure方法的实现(真真理解)
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1102/1891.html
onMeasure方法中使用resolveSizeAndState,支持2.2
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0316/1593.html

还有一些自定义控件的例子,持续更新:

这里写代码片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值