下面写的不分先后顺序:
自定义View 里面方法的调用顺序
http://blog.csdn.net/mchenys/article/details/50408819
Android View的生命周期
http://www.jianshu.com/p/08e6dab7886e
下面会更新相关的博客
- 应该掌握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 - Android的事件分发机制
- 自定义View常用的一些方法
- 自定义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()来设置容器的宽度和高度
- 触摸相关工具类全解
- 自定义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
还有一些自定义控件的例子,持续更新:
这里写代码片