是Android的自定义View-开个新坑

659 阅读3分钟

写在前面的话

说是开个新坑其实也不是,之前也简单地发过一些关于自定义View地相关文章,之前也屯了很大一波文章,但是内容流于表面,没有深入地去研究一些自定义View的相关细节,2020也要到年底了,Google也在测试新的UI构建方式——Compose了,再不总结现有的自定义View可能就没有机会啦啦啦!!!

可能你会说,那既然Compose会替换掉现有的UI体系,那还看现有的View体系干嘛呀?

不可否认,我在计划整理研究自定义View之前也有这个顾虑(毕竟笔者从事Android才一年多一点,或许应该现多学点,而不是急着去总结),但是作为Android前端,毕竟是前端,抛开其它的不说,View作为直接展示给用户的系统,如果不是很深入地理解了,又谈何给用户优越的体验呢?

另一方面,做技术总结肯定是很多点是个人深挖不到的,将这部分总结发布出来可以和大家一起学习,共同进步。

写在前面的话的最后,做技术总结肯定是会去参考很多大佬的文章和视频,我不会直接去做代码的搬运工,所有的代码会自己重新验证一遍,如有侵权或让大佬觉得不舒服的地方请联系我;关于数学和物理的相关知识也会仔细考正,如有错误也请联系我,我会仔细更正。

注意本系列所有Demo会以kotlin去编写,基于Android 6.0及以上。

为什么要做这个系列

关于自定义View在Android开发基础中是必然逃不开的一个话题,不单单是在面试是一个用来检测一个基础程序员的基本功的常见问题,在实际开发的过程中也会有经常使用到。

很多时候我们对于自定义View仅仅停留在表面知识,没有很好地理解其中的原理,这就导致我们会常常去回顾这部分的知识,这就造成了时间浪费,API可以不记得,但是原理一定要知道。

不是时间不够,只是做了太多重复的事情,我希望我的总结可以帮助有效地节约了时间。

计划的目录

主要会从View体系的测量、绘制、触摸反馈三部分来解析Android现有View体系的深层次的知识点,具体的计划目录如下(会不断更新,现有的不代表最终的结构):

注意:可能不一定会完全按照这个顺序去发布,也可能会跳着去研究,如果你觉得我的研究对你来说还比较ok的,又有你当下很感兴趣的方面也可以私信我,我会在力所能及的情况下优先那部分的探索。