美文网首页Android专题安卓UI
Android自定义View分类

Android自定义View分类

作者: 1a473fcb13b0 | 来源:发表于2019-03-29 16:49 被阅读45次

    Android自定义View主要分为二大类:

    一、单个控件自定View
    二、ViewGroup自定义View

    一、单个控件自定义View

    单个控件自定义View可分为:

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

    ②.继承特定的View( 例如:TextView,Button,EditText,Progressbar,ImageView等):
    这种方法比较常见,一般是用于扩展已有View的功能,例如:TextView,Button,EditText,Progressbar,ImageView等,这种方法比较容易实现。这种方法不再需要自己支持wrap_content和padding等。

    二、ViewGroup自定义View

    ViewGroup自定义View可分为:

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

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

    参考文章:
    https://www.jianshu.com/p/7cc1c6e29b8a

    相关文章

      网友评论

        本文标题:Android自定义View分类

        本文链接:https://www.haomeiwen.com/subject/oxkwdqtx.html