安卓开发中view和canvas的理解

这几天一直在研究ViewGroup这个类,根据很多资料了解到,viewgroup是一个view的容器,可以实现很多布局控件其实都是通过继承这个类实现的,而且如果你要实现自己的布局自定义viewgroup也是最恰当的方法。

但是自定义viewgroup涉及到很多关于view的函数,最典型的就是onMeasure,关于onMeasure你可以去参考如下这些文章:

Android UI学习|对View的onMeasure方法理解 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1114/557.html

Android中自定义View时MeasureSpec的作用 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0305/971.html

MeasureSpec类介绍及使用详解 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0111/797.html

好了简单的说来 onMeasure的作用就是设置子视图的大小区域,可是这又canvas扯上关系了,view其实是canvas画出来的,但是canvas是如何画出一个大小固定的视图的呢,  canvas不就是整个手机屏幕吗。

这是疑惑的第一个问题。

第二个问题是viewgroup中的onLayout()

这个函数是设置子view的布局位置,但是这个位置到底是相对于什么而言的,scrollto移动的到底是什么,和canvas的translate移动函数有什么关系。