Android自定义View的分类

1.继承View重写onDraw方法:

这种方法主要用于实现一些不规则的效果,即这种效果不方便通过布局的组合方式来达到,往往需要静态或动态地显示一些不规则的图形。很显然这需要通过绘制的方式来实现,即重写onDraw方法。采用这种方式需要自己支持wrap_content,并且padding也需要自己处理。

2.继承ViewGroup派生特殊的Layout:

这种方法主要用于实现自定义的布局,即除了LinearLayout、RelativeLayout、FrameLayout这几种系统的布局之外,我们重新定义一种新的布局,当某种效果看起来很像几种View组合在一起的时候可以采用这种方式实现。采用这种方式需要合适的处理ViewGroup的测量、布局、这两个过程,并同时处理子元素的测量和布局过程。

3.继承特定的View( 比如TextView):

这种方法比较常见,一般是用于扩展已有View的功能,比如TextView,这种方法比较容易实现。这种方法不再需要自己支持wrap_content和padding等。

4.继承特定的ViewGroup(比如LinearLayout):

这种方法也比较常见,当某种效果看起来很像几种VIew'组合在一起的时候,可以采用这种方法来实现。采用这种方法不需要自己处理Viewgroup的测量和布局这两个过程。需要注意这钟方法和方法2的区别,一般来说方法2能实现的方法4也都能实现,两者主要的区别在于方法2更接近View的底层。

你可能感兴趣的:(Android自定义View的分类)