自定义 view - 开篇
ps : 自定义 view 实在是难,这是公认的,知识点多,复杂难懂的点多,资料繁杂质量也不高,牵连的知识面也多。干 Android 也是好久了,今天开始填自定义 view 的坑,诸君多许努力,前路坎坷难行啊!共勉之......
大图镇楼:
自定义 view技能树 自定义 view 全生命周期 . 真哈哈有没有被这2张图吓到,没吓到的朋友说明你 自定义 view 入门了哦 ~
自定义 view 是 android 科技必升的科技树,所以很久以来诞生了很多优秀的教程,大家的学习也是跟着这些优秀的教程走的,这里我归纳一下我碰到的优秀教程,并尝试划分出学习等级和学习指导出来
学习指导
1. 新人开荒 ~
必须考虑有新人来看哦,所以开荒文章必不可少啊
简书_xxq2dream 朋友的教程,简单易懂,深度低,最是适合初学者扫盲
很多朋友忘了自定义 view 中的公式,有需要的朋友请看:
2. 技能进阶
扫盲篇看完了或是有基础的同学肯定困惑找不到优秀的,正确的,有大量实践例子的教程来继续提高自己了把,这里分享一下我的积累
-
GcsSloop 的自定义 view 系列
GcsSloop 可是老牌自定义 view 高手了,我发现很多人都是看 GcsSloop 的文章提高自己的。GcsSloop 的教程中对 canvas、paint、path 有详细讲解,格式清晰,简单易懂,另外还对 canvas 、path 的变换操作,matrix、 camera、手势操作有详细讲解,整个教程中有很多实践例子,是不可多得的优秀教程 -
aigestudio 的自定义 view 专栏
aigestudio 的教程中着重介绍了诸如:
* ColorFilter(颜色滤镜)
* Xfermode(过度模式)
* FontMetrics(文字矩阵)
* BlurMaskFilter(模糊遮罩滤镜)
* EmbossMaskFilter(浮雕遮罩滤镜)
* PathEffect(路径效果)
* ShadowLayer(阴影效果)
* Shader(着色器)
* Matrix 矩阵对绘制的影响
* drawBitmapMesh
* Canvas Stack栈
* view 绘制流程
上述这些非常棒理论性的知识点,aigestudio 是我见到的阐述的最清晰,最正确的人了,没有之一 -
扔物线大神 的自定义 view 专栏
扔物线大神的名头大家都听说过吧,android 开发很厉害的,他写的自定义 view 教程很详细,很抓基础,有很多例子,非常正统,适合巩固补充
3. 其他人的参考资料
为什么我要把下面这些人单独分开呢,因为上面的3个大神级教程,非常优秀,要不知识点全面,要不理论介绍准确易懂,要不就是有丰富的练习项目
当然其他人的教程也是有很多看点的,这里我一一列举出来,大家有时间去研究下:
- Carson_Ho | GAStudio | kangaroo835127729 | 英勇青铜5 | 李诗雨 | bobo | minmin_1123
我的学习笔记:
学习总是一步一步来的,记录下我的心路历程吧
- 自定义 view 的基础部分:
- 自定义 view - 数学公式
- 自定义 view - 前置知识点
- 自定义 view - 自定义属性
- 自定义 view - 布局 onLayout
- 自定义 view - 测量 onMeasure
- 自定义 view - 3大核心方法补充
- 自定义 view 的绘制部分:
- 自定义 view - canvas
- 自定义 view - paint
- 自定义 view - 绘制文字
- path
path 是自定义 view 最最重要的绘制技巧了,任何的错误都会给小伙伴们未来带来巨大的麻烦在,所以这里需要最优秀,准确的文章,推荐大家去看:GcsSloop 中关于 path 的部分,path 的概念点很多,而且都很不好理解~
- 自定义 view 实例:
前2是练习下测量和布局,后面都是各式各样的自定义 view 了,自定义 view 路太长了,大家尽量去学吧~
优秀自定义 view 集合
我在自定义 view的道路上也是才走出了第一步,会的只有一点点,还有点太多的思路需要我么你去学习,下面奉上我收藏的优秀自定义 view ,大家尝个鲜,好的话点个赞哦~
- 非常有意思:
- 基础图形:
- 点击,读取,结果 - 联动
- path 技术:
- 水波纹
- [自定义WaveProgressView满足你所有水波纹加载需求] (https://www.jianshu.com/p/7adbe1e544bc)
- 自定义view实现水波纹效果
- Android-贝塞尔曲线实现水波纹动画
- loading:
- 页面效果:
- Android初级进阶之自定义果冻视图(BouncingJellyView)(一)
- Android初级进阶之自定义果冻视图(BouncingJellyView)(二)
- 用安卓5.0新特性打造酷炫的登录注册界面
- 项目需求讨论 — 用Transition做一个漂亮的登录界面
- 一个登录的特效动画
- 仿简书动态 searchview 的实现
- Android----仿qq顶部底部弹性ScrollView
- Android 项目总结(一):弧形ViewPager 和弧形HeaderView
- Android进阶之自定义ViewGroup—带你一步步轻松实现ViewPager
- Android 绕球心旋转的引导页效果