android源码           上面这个两个视图是AndroidAPI中没有给出来的但在来电接听和闹钟被使用到的一个widget视图——GlowPadView.java我们通过源码来看"/>

自定义View之onMeasure()

Posted xuzhuaaron1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义View之onMeasure()相关的知识,希望对你有一定的参考价值。

part1

可以说重载onMeasure(),onLayout(),onDraw()三个函数构建了自定义View的外观形象。再加上onTouchEvent()等重载视图的行为,可以构建任何我们需要的可感知到的自定义View。

本节我们探索自定义View中onMeasure()起到了什么样的作用,题外要插的一句是,Activity框架,View框架中大量的on函数基本上都应用到了Template模式(模板设计模式),掌握这一模式对于理解这些框架大有裨益。

我们知道,不管是自定义View还是系统提供的TextView这些,它们都必须放置在LinearLayout等一些ViewGroup中,因此理论上我们可以很好的理解onMeasure(),onLayout(),onDraw()这三个函数:1.View本身大小多少,这由onMeasure()决定;2.View在ViewGroup中的位置如何,这由onLayout()决定;3.绘制View,onDraw()定义了如何绘制这个View。

首先我们看看TextView.Java中的onMeasure()源码: