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的底层。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容