自定义view的分类

1 继承view重写onDraw方法

     适用范围:实现一些不规则的效果

    特点:需要自己实现padding与warp_content效果

    注意:xml文件中定义的属性都是canvas(画布)的属性,画布内容中的属性需要我们在onDraw中计算的得到(即画布属性与内容                属性相关联)

2继承ViewGroup派生出的特殊Layout

    使用范围:实现自定义布局,当某种效果看起来像几种view组合在一起的时候,可以采用这种方法来实现。

    特点:较为复杂,需要合理的处理viewgroup及其子元素的measure与layout过程;padding属性需要自己实现

3 继承特定的view(例如TextView)。

   使用范围:扩展已知某种view的功能,较易实现,不需要自己支持wrap_content和padding等

   注意:需要加上super.onDraw(canvas)才能拥有父类控件的一些特性。例如,继承TextView的控件需要         super.onDraw(canvas),text中的内容才会显示;没有用就不会显示。

4 继承特定的VIewGroup(例如LinearLayout)

    使用范围:同2,一般来说,2所能实现的效果4都能实现,只是2更接近view的底层。

    特点:测量与布局不需要我们实现,在构造方法中需要动态加载一个布局。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值