自定义View系列1:介绍目录和自定义View的分类
引言
这将是一个系列的博客,主要是针对Android 自定义View的学习和工作过程总结。借鉴了一些前人们的优秀文档比如【扔物线】老师HenCoder系列,以及优快云其他优秀的作者的文档;感谢他们,本文如需转载,请注明出处。
1. 简介
本文是个人学习,研究和总结自定义View的过程文档,自定义View一直以来是Android开发中的重难点,是开发进阶阶段必须要掌握的知识点,此文档借鉴了很多优秀的开发者的文档,也提炼了个人学习和工作中的经验。
2.学习目录
- 简介
- 学习目标
- 学习计划
- 自定义View的分类
4.1 完全自定义View
4.2 扩展现有View
4.3 自定义组合View - 自定义View过程
5.1 绘制
5.2布局
5.3 触摸反馈
5.4 滑动冲突 - 自定义View实战
6.1 完全自定义View实战
6.2 扩展现有自定义View实战
6.3 自定义组合View实战 - 总结
3.学习目标
完全掌握自定义View,给任意一个需求都可以从零开发出来【时间合适的情况下】。
4.学习计划
5.自定义View的分类
现在主要把自定义View分为三个类型;
- 完全自定义View
- 扩展现有的View
- 自定义组合View
5.1 完全自定义View
自带的控件没有办法实现,就算是多个进行拼凑,扩展都无法完成的;或者是通过复杂的拼凑可以完成,但是性能很差的这一类UI;就可以选择这个方式,直接继承View或者ViewGroup,重写其 onMeasure() onLayout() onDraw()等相关方法进行自定义;如饼状图,自定义的LoadingView等,这一类的View难度是相对最大的,也是需要重点掌握的;
5.2 扩展现有的View
现有的控件不能完全满足自己的需求,比如说IamgeView可以满足我显示图片的需求,但是不能满足我裁剪显示成圆形图片的需求;RecyclerView可以满足我一条一条展示数据的需求,但是不能满足我每条Item右画删除的功能;所以我们需要继承这些原有的View、ViewGroup,然后重新相应的方法;在保留原有的功能上,还能够扩展新的定制功能;这类自定义View的难度就属于中等;也是需要掌握的;
5.3 自定义组合View
这个其实项目开发中还挺常用的,我在项目中主要用于两个地方。TitleBar 和 SettingView。每个APP一般都有很多页面,也就是多个Activity,为了统一样式,每个Activity的TitleBar都是一样的样式,每个TitleBar或多或少都会中间title、左边图片或者文字或者按钮、右边图片或者文字或者按钮这样的样式,所以就使用现有的TextView,Button,ImageView等进行组合形成一个新的View;这样的好处是可以统一管理和修改,但是每个Activity的title的差异性太大的话,就需要做比较大的兼容;Setting界面的SettingView也是同理;这种难度最低,但是写的东西比较多。
总结:这一节主要是学习计划,结构和自定义View的分类,作为初章,下一节开始正式进入内容。