4.注意padding,让view支持padding,在onDraw方法中获取padding
5.注意滑动冲突,解决滑动冲突
6.尽量不要使用handl
er,因为里边已有post系列方法,不需要再用handler
继承View重写onDraw方法
主要用于实现不规则的效果,即这种效果不方便通过布局的组合方式来实现。相当于就是得自己“画”了。采用这种方式需要自己支持wrap_content,padding也需要自己处理
继承ViewGroup派生特殊的Layout
主要用于实现自定义的布局,看起来很像几种View组合在一起的时候,可以使用这种方式。这种方式需要合适地处理ViewGroup的测量和布局,并同时处理子元素的测量和布局过程。比如自定义一个自动换行的LinerLayout等。
继承特定的View,比如TextView
这种方法主要是用于扩展某种已有的View,增加一些特定的功能。这种方法比较简单,也不需要自己支持wrap_content和padding。
继承特定的ViewGroup,比如LinearLayout
这种方式也比较常见,和上面的第2种方法比较类似,第2种方法更佳接近View的底层。
自定义View有多种方式,需要根据实际需要选择一种简单低成本的方式来实现
自定义View需要注意的地方
让View支持wrap_content