前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自定义View怎么学

自定义View怎么学

作者头像
用户1907613
发布2018-07-20 16:08:09
4290
发布2018-07-20 16:08:09
举报
文章被收录于专栏:Android群英传

很多读者给我留言,让我讲下关于自定义View的分析,我想说,自定义View,看完这篇文章,就够了!

没错,是在吹牛逼,自定义View根本写不完,任何企图靠几篇文章就完全驾驭自定义View的,都是耍流氓,是要被打的。

学习自定义View绝对是一个没有止境的过程,你永远不知道射鸡师会拿着什么样的图来找你。在自定义View的江湖,有传说级别的爱哥,但已经退出江湖多年,好久没传出一篇自定义View的秘籍了,也有现在风生水起的养猪大侠CJJ,以他为首的一帮丧心病狂的自定义View开发者,曾经写过很多自定义View的文章和库,多看看他们的文章,可以吸取天地的精华,让你在学习自定义View的时候,至少比别人快一个车位。

好了,下面进入正题,自定义View到底怎么学。学习自定义View之路好比是在渡劫,越到后面,越是难以超越自我,但是入门,还是非常简单的。

资质

自定义View大部分时间都是在搞数学,特别是三角函数、角度、弧度等等知识,如果你数学高中都没毕业,请先完成你的学业!

第零劫

了解Android的View视图坐标系,知道什么是绝对坐标,什么是相对坐标,以及你现在在哪个坐标。这是开始学习自定义View的基础,不掌握好坐标,你后面连该往哪画都不知道,还自定义个啥?这一块在《Android群英传》中有详细的讲解,推广一下,别喷我。

第一劫

了解Canvas绘图的基本API,例如drawXXX之类的方法,这些是你的第一支画笔,如果你都不熟悉自己的画笔,那么还谈什么绘图?这一劫的基础一定要打好,多去尝试尝试这些API,修改修改参数,看看效果会发生怎样的变化,这一阶段的基础不打好,会让你后面如履薄冰。

第二劫

了解View的重要重载方法例如onSizeChanged()之类,以及getTop()、getXXX()这样的方法,到底取出的是什么样的数据,这些方法究竟在什么时候被调用。这一块在《Android群英传》中也有详细的讲解,推广一下,别喷我,again。

第三劫

了解View绘图的过程,底层的绘图原理,特别是onLayout()、onMeasure()这些方法到底是个什么鬼,以及你的View大小究竟是怎么计算出来的。这个阶段对于完成一个可商用的自定义View是至关重要的,你的绘图要想具有装逼的功能,就得满足不同人的需求,不仅要好看,而且要好用。

第四劫

了解Canvas的状态保存,坐标移动等内容,了解图层以及图层的保存,了解通过改变坐标来简化绘图的方法。这些东西就和真实的绘图很像了,特别是图层之类的概念,可以说是PS的核心了。

第五劫

了解Bitmap、Drawable等内容,知道如何对自定义View进行很好的拓展。利用好这些东西,可以对自定义View进行很好的补充。

第六劫

了解Path的API,了解通过Path来构造图像的方法,特别是贝塞尔曲线、以及PathMeasure的使用。这些都是数学绘图的高级使用技巧,掌握这些技巧,是后面进行自定义动画的基础,更是自定义View的高级技巧。

第七劫

了解图像的混合模式、Path的填充模式、环绕模式、Matrix等对图像特效的处理方式。这些是对图形图像的进一步处理,前面可能都是针对单独的效果,而利用混合模式、矩阵,可以实现更加丰富的效果。

http://www.imooc.com/learn/343 Android图像处理-变"换"莫测的图像

http://www.imooc.com/learn/302 Android图像处理-打造美图秀秀从它开始

这两门课是我在慕课网讲的对图像处理的两门视频课程。对于自定义View的特效实现,还是很有帮助的,欢迎大家前去围观。

在渡过这七劫之后,你就可以向着自定义动画进军了,这部分,我们下道菜才聊,先缓一缓,大家可以针对前面的劫数,来看看自己目前处于哪一劫。

其实自定义View并不是什么非常高深的东西,要学好自定义View,首先要对你的绘画工具了如指掌,看到要自定义的View,首先要在气势上压倒她,没有什么自定义View是做不出来的,仔细分析,如何用你手中的画笔、工具,来绘制,复杂的图形,是否可以拆解,是否可以通过一些技巧来简化。分析完毕,就是纯粹的坐标计算了,利用好View的API和重载方法,做最合适的计算。剩下的就是留给你装逼的时间了。另外,多看一些优秀的自定义View是如何实现的,以及一些解析自定义View的博客,对提高自己的绘图技术,也是很有帮助的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 群英传 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档