ps : 自定义 view 实在是难,这是公认的,知识点多,复杂难懂的点多,资料繁杂质量也不高,牵连的知识面也多。干 Android 也是好久了,今天开始填自定义 view 的坑,诸君多许努力,前路坎坷难行啊!共勉之......
速查表:
大图镇楼:
哈哈有没有被这2张图吓到,没吓到的朋友说明你 自定义 view 入门了哦 ~
自定义 view 是 android 科技必升的科技树,所以很久以来诞生了很多优秀的教程,大家的学习也是跟着这些优秀的教程走的,这里我归纳一下我碰到的优秀教程,并尝试划分出学习等级和学习指导出来
学习指导
1. 新人开荒 ~
必须考虑有新人来看哦,所以开荒文章必不可少啊
这2位朋友的教程,简单易懂,深度低,最是适合初学者扫盲
很多朋友忘了自定义 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
4. 一些有意思的思路
使用 path 结合 canvas.clipPath 来实现圆形图片,思路很棒,里面还有用 matrix 对 bitmap 进行压缩,值得一看
自定义 edittext 的例子不多,这个例子给 edittext 右下角加上统计文字
跟着手势图案,然后保存,这里保存 bitmap 到本地很 nice
5. 自定义 view 绘制流程看这里,应付面试
我的学习笔记:
学习总是一步一步来的,记录下我的心路历程吧
- 自定义 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 ,大家尝个鲜,好的话点个赞哦~
- 非常有意思:
- view 拖拽
- tabview
- 基础图形:
- 点击,读取,结果 - 联动
- path 技术:
- loading:
- 页面效果:
- Android初级进阶之自定义果冻视图(BouncingJellyView)(一)
- Android初级进阶之自定义果冻视图(BouncingJellyView)(二)
- 用安卓5.0新特性打造酷炫的登录注册界面
- 项目需求讨论 — 用Transition做一个漂亮的登录界面
- 一个登录的特效动画
- 仿简书动态 searchview 的实现
- Android----仿qq顶部底部弹性ScrollView
- Android 项目总结(一):弧形ViewPager 和弧形HeaderView
- Android进阶之自定义ViewGroup—带你一步步轻松实现ViewPager
- Android 绕球心旋转的引导页效果
- 仿映客 viewPager 上下滑动切换直播
- Android自定义View——从零开始实现覆盖翻页效果
- 自定义 view 合集
- Android各种花式酷炫自定义控件开源库集合
- android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
-
红橙Darren
红橙这里的确有几个好东西,比如 vp 视差滚动,58加载