自定义View系列教程05--示例分析
Posted 谷哥的小弟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义View系列教程05--示例分析相关的知识,希望对你有一定的参考价值。
版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
自定义View概述
之前结合源码分析完了自定义View的三个阶段:measure,layout,draw。
那么,自定义有哪几种常见的方式呢?
-
直接继承自View
在使用该方式实现自定义View时通常的核心操作都在onDraw( )当中进行。但是,请注意,在分析measure部分源码的时候,我们提到如果直接继承自View在onMeasure( )中要处理view大小为wrap_content的情况,否则这种情况下的大小和match_parent一样。除此以为,还需要注意对于padding的处理。 -
继承自系统已有的View
比如常见的TextView,Button等等。如果采用该方式,我们只需要在系统控件的基础上做出一些调整和扩展即可,而且也不需要去自己支持wrap_content和padding。 -
直接继承自ViewGroup
如果使用该方式实现自定义View,请注意两个问题
第一点:
在onMeasure( )实现wrap_content的支持。这点和直接继承自View是一样的。
第二点:
在onMeasure( )和onLayout中需要处理自身的padding以及子View的margin -
继承自系统已有的ViewGroup
比如LinearLayout,RelativeLayout等等。如果采用该方式,那么在3中提到的两个问题就不用再过多考虑了,简
以上是关于自定义View系列教程05--示例分析的主要内容,如果未能解决你的问题,请参考以下文章