自定义 View 你不得不知的一些事儿

184 阅读7分钟
原文链接: blog.csdn.net

转载请注明出处:From李诗雨----blog.csdn.net/cjm24848365…


不诗意的女程序猿不是好厨师~


恩!对!这又是一个“不得不知”系列的文章~

这真的很诗雨!


自定义View---Android界亘古不变的主角。已经有很多很多的人写过此类文章。也有朋友真心的劝我,“以我之见,你还是最好别写了,要写也不要再写那些理论性很强的东西了,一来是因为你火候未必到,比如像事件分发机制什么的,你很难很全面而又无误地把它讲清楚,再者,即使你写了也未必会有人看的呀”。忠言逆耳利于行,行不行那就要看看自己怎么定了。我偏偏是那种 "不撞南墙不回头,撞了南墙还想要把墙推倒的人"。


这次文章的编写我也是参考了很多资料的,在此感谢《Android开发艺术探索》,《Android第一行代码》,《Android第二行代码》,鸿洋大神博客,郭霖大神博客,还有很多前辈们(比如你)的博客。所以,我这次在五一的三天,也是把我之前专栏里的两篇文章做了较大幅度的修改,另外又新增了两篇文章。


所以,可能有些朋友会发现,五一期间我的博客是这样的:



还有这样的:



你可能会说:厉害了我的哥,能把博客整成这种*样子的,除了你估计也没谁了【笑cry】。

好吧,我也承认我的确是Android界的一朵奇葩。


截止五一假期结束,我的专栏,有了四篇文章。当然还有很多的项目实例和代码后续会继续添加进去。


第一篇:自定义View(一)--View的基础概念,工作流程及生命周期的理解

其实无论是学习自定义View,还是其他的什么,那些看起来枯燥的基础知识其实还是很有必要掌握的,因为他们就好比空气,平时都不把它放眼里,觉得没什么,但是当你逐渐的接触更多的项目,出现了更多的bug时,你会发现很多的错归根结底还是由于基础没打好造成的。你也才会领悟到空气的意义:我们虽可以对它不屑,但关键时候还是因为有它的存在,我们才可以得以生存,然后才能谈得上去做有意义的事。


那么,我的第一篇文章自定义View(一)--View的基础概念,工作流程及生命周期的理解 它就是空气,你现在可以不屑于它,但是请记住它的存在。如果是初学者,那真的还是建议你好好看看,这可真的是自定义View最朴素而又务实的存在。看了它,你会较深刻的理解,到底什么是View? 它的位置是怎么确定的?它又是怎么一步步活生生地展现在我们面前的?如果说View也有生命,那么它的一生又是怎样的?这些疑问你通通可以从 自定义View(一)--View的基础概念,工作流程及生命周期的理解 中找到答案。

这里给个传送门:自定义View(一)--View的基础概念,工作流程及生命周期的理解 ----blog.csdn.net/cjm24848365…



第二篇:自定义View (二)--表层浅析View的事件分发机制和滑动冲突

事件分发机制,也算得上是Android的重难点了,想把它理解透真的太不容易了,相信也没有几个人敢说自己完全理解了事件分发机制吧。这里我也是在再次参看了各路资料后,有了一些新的感悟和总结。

是的,第二篇其实是我在这几天中重点写的东西,为了文章的完整性,原来第二篇位置的文章已经被我移动到了第三篇去了,并且也重新做了修改(ps:我是不是还是很机智的)。第二篇中我用到不少的图形,比喻和伪代码,也是比较诙谐的一篇文章。就如文章所表达的一样:我个人就觉得事件机制我们其实就可以先暂且记为---分发由外而内,消费由内而外。至于里面一些具体的规则,那就像现实生活中一些人际关系的处理一样:父亲要管理儿子,而儿子在叛逆期也会反抗父亲一样,当然有时候关系可能更复杂,那我们就需要更细致地去进行调节了。

至于滑动冲突,我再加上一些具体运行效果的展示,然后再根据事实去分析理解,最后总结出了两种解决方法,外部拦截法和内部拦截法。所以这一篇的笔记我觉得还会比较详细和清楚的,虽然我不能百分百的讲透事件分发机制和滑动冲突,但是我个人的一些理解和小结我觉得还是值得和大家进行交流一下的。

传送门出窍:自定义View (二)--表层浅析View的事件分发机制和滑动冲突 ---blog.csdn.net/cjm24848365…


第三篇:《自定义View(三)---自定义View整个流程的梳理与总结》

这篇 倒有点承上启下的味道了,以为如果你已经把第一篇第二篇看得差不多了,那我可以毫不客气地说你已经具备了去自定义View的能力。但是吧,总觉得还少了一点点什么,是什么呢?是的,没错,就是对整个自定义View的流程我们还要来拎一下。你要自定义View了,该从哪里下手,下手了接下来继续又有可能要做什么呢?再者期间又要注意什么呢?好吧,第三篇双手奉上。它有点像一个模板,在以后的自定义View的道路上你可模仿它走下去,但是,请注意,模仿不能超越,所以当你熟了之后,你还要学会抛掉它,形成一个自己独有的思想。

传送门,麻烦再出来一下:《自定义View(三)---自定义View整个流程的梳理与总结》 ---blog.csdn.net/cjm24848365…


第四篇 《自定义View的实践(一)---一个简易侧滑菜单的实现》

光说不练假把式你把我的一、二、三都给看了,再不动动手怎么说得过去呢?

所以我们就从一个超级简单的简易版的侧滑菜单开始吧,相信你肯定可以分分钟就搞定了,然后你可稍微骗一下自己说:不是因为它简单,而是因为我自定义View的功力又上升了一层。恩,善意的谎言不要太过于当真。这里就先将就一下来个超简单的起个步,源码也已上传了哈。后面有时间我会继续把项目中的实例来出来的,哈哈。

传送们呢?传送门: 《自定义View的实践(一)---一个简易侧滑菜单的实现》--- http://blog.csdn.net/cjm2484836553/article/details/71063040


第五篇:

第六篇:

第七篇:

。。。。。。


是的现在还没有,但是相信在不久的那个明天,它就会有的~

到时候我们还可以云淡风轻的来句“皮皮虾,开始写自定义View了~”


我相信在这个七八点的早晨,一定有很多和我一样的monkey在挤地铁的路只能呵呵了。

你是不是也会和我一样在掘金,csdn,简书,抑或是一些微信公众号上游走闲逛呢

你会不会不经意间点开了这篇“文章”,又不经意间看到了最后。


然后来一句“卧槽,居然还有这样的程序猿啊,这是在写Android吗,挺奇怪的话风,还真有点毁三观呢”。

哎呦老兄,习惯就好了。有些东西不管对错还是要坚持的,比如像这样吞云吐雾地写写文章,说不定我坚持一下就能遇到皮皮虾,然后来一句“皮皮虾,我们走,上班喽!”。

好吧,所有的荒诞都是为了博君一笑,新的一天,你早!