Android进阶从零学习自定义View——概念基础

其实关于自定义View,网上实在是太多太多了,但是呢,还是最终决定开一个专栏来讲述自定义View。这个专栏的目的有两个:

1. 我自己对于自定义View的总结
2. 讲述我自己在学习自定义View过程中走过的弯路,旨在希望各位同学少走弯路。
3. 工作四年,从0回归学习自定义View

好了,其实自定义View知识点真的是很多,很复杂,很难理解,因此,本专栏会通过很多篇博客循序渐进的学习自定义View的相关内容。这个专栏的大纲如下:

1. 自定义View基础概念
2. View树的绘制流程
3. 自定义ViewGroup
4. 自定义ViewGroup项目中的常见问题(以ScrollView为例)
5. 自定义View

以上就是自定义View专栏的主要内容,PS:自定义ViewGroup也可以称为:自定义View。通过该专栏的学习,各位同学可掌握如下技能:

1. 能解决布局嵌套不显示问题
2. 能写出各式各样的自定义ViewGroup以及View
3. 能够明白问题的原理,以及源码的原理,轻松应对实际项目和面试中的相应问题

这个专栏我打算从基础,一层一层深入源码,并且,根据源码反推我们项目中遇到的实际问题的解决办法,这样的话,就达到了知其然而知其所以然

闲话少叙,开始今天的表演。。。

本篇博客是第一篇博客,学习一下自定义View的基础知识,其实关于基础知识,可能可能很多人不太在意,但是通过四年的工作磨炼,我发现其实万般框架,万般花里胡哨的东西,都是有基础知识构成的,所有本篇博客我们回归基础,重温学习一下。

自定义View的分类

关于自定义View我们分为两类

  1. 自定义ViewGroup: 一般只需要重写onMeasure方法和onLayout方法
  2. 自定义View:一般只需要重写onMeasure和onDraw方法。

我们知道一般无论是自定义View还是自定义ViewGroup都无非三个方法:onMeasure(), onLayout() 和 onDraw()方法。
其实在面试中我们经常被问到:了解自定义View吗?
面试者:了解,自定义View需要重写:onMeasure,onLayout, onDraw三个方法。

没然后了,其实这样说不错,但是呢,如果你是工作3-5年的开发者,很显然,这个回答是不合格的,因为你需要回答出这三个方法是怎么调用的?内部的绘制流程是什么? 其中必然会牵扯出:ViewRootImpl,WMS,DecorView等等,这个问题,专栏之后博客会讲到。

现在我们需要明白的是三个方法:onMeasure, onLayout,onDraw。

View类简介

我们先看下View的源码:

// 如果View是在Java代码里面new的,则调
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值