自定义View系列1:介绍目录和自定义View的分类

自定义View系列1:介绍目录和自定义View的分类

    • 引言
    • 1. 简介
    • 2.学习目录
    • 3.学习目标
    • 4.学习计划
    • 5.自定义View的分类
      • 5.1 完全自定义View
      • 5.2 扩展现有的View
      • 5.3 自定义组合View

引言


这将是一个系列的博客,主要是针对Android 自定义View的学习和工作过程总结。借鉴了一些前人们的优秀文档比如【扔物线】老师HenCoder系列,以及CSDN其他优秀的作者的文档;感谢他们,本文如需转载,请注明出处。

1. 简介


本文是个人学习,研究和总结自定义View的过程文档,自定义View一直以来是Android开发中的重难点,是开发进阶阶段必须要掌握的知识点,此文档借鉴了很多优秀的开发者的文档,也提炼了个人学习和工作中的经验。

2.学习目录


  1. 简介
  2. 学习目标
  3. 学习计划
  4. 自定义View的分类
    4.1 完全自定义View
    4.2 扩展现有View
    4.3 自定义组合View
  5. 自定义View过程
    5.1 绘制
    5.2布局
    5.3 触摸反馈
    5.4 滑动冲突
  6. 自定义View实战
    6.1 完全自定义View实战
    6.2 扩展现有自定义View实战
    6.3 自定义组合View实战
  7. 总结

3.学习目标


完全掌握自定义View,给任意一个需求都可以从零开发出来【时间合适的情况下】。

4.学习计划


自定义View系列1:介绍目录和自定义View的分类_第1张图片

5.自定义View的分类


现在主要把自定义View分为三个类型;

  • 完全自定义View
  • 扩展现有的View
  • 自定义组合View

5.1 完全自定义View


自带的控件没有办法实现,就算是多个进行拼凑,扩展都无法完成的;或者是通过复杂的拼凑可以完成,但是性能很差的这一类UI;就可以选择这个方式,直接继承View或者ViewGroup,重写其 onMeasure() onLayout() onDraw()等相关方法进行自定义;如饼状图,自定义的LoadingView等,这一类的View难度是相对最大的,也是需要重点掌握的;

自定义View系列1:介绍目录和自定义View的分类_第2张图片

5.2 扩展现有的View


现有的控件不能完全满足自己的需求,比如说IamgeView可以满足我显示图片的需求,但是不能满足我裁剪显示成圆形图片的需求;RecyclerView可以满足我一条一条展示数据的需求,但是不能满足我每条Item右画删除的功能;所以我们需要继承这些原有的View、ViewGroup,然后重新相应的方法;在保留原有的功能上,还能够扩展新的定制功能;这类自定义View的难度就属于中等;也是需要掌握的;

自定义View系列1:介绍目录和自定义View的分类_第3张图片

5.3 自定义组合View


这个其实项目开发中还挺常用的,我在项目中主要用于两个地方。TitleBar 和 SettingView。每个APP一般都有很多页面,也就是多个Activity,为了统一样式,每个Activity的TitleBar都是一样的样式,每个TitleBar或多或少都会中间title、左边图片或者文字或者按钮、右边图片或者文字或者按钮这样的样式,所以就使用现有的TextView,Button,ImageView等进行组合形成一个新的View;这样的好处是可以统一管理和修改,但是每个Activity的title的差异性太大的话,就需要做比较大的兼容;Setting界面的SettingView也是同理;这种难度最低,但是写的东西比较多。

自定义View系列1:介绍目录和自定义View的分类_第4张图片

总结:这一节主要是学习计划,结构和自定义View的分类,作为初章,下一节开始正式进入内容。

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