android,view的执行过程onDraw、onSizeChanged,onFinishInflate
小试view的执行过程,此是入门,高手绕道。
-------------------------------------------------------------------------------- 
此为抛砖引玉,个人看官自己发挥。 
结果如下:
- 12-05 22:23:03.587: D/mDebug(9715): TestView context, attrs=@2131034112
 - 12-05 22:23:03.597: D/mDebug(9715): onFinishInflate
 - 12-05 22:23:03.667: D/mDebug(9715): onSizeChanged,w=240,h=282,oldw=0,oldh=0
 - 12-05 22:23:03.727: D/mDebug(9715): onDraw
 - 12-05 22:23:03.757: D/mDebug(9715): onDraw
 
[size=l代码如下:[/size]
- public class TestView extends View {
 - public TestView(Context context) {
 - super(context);
 - Log.d("mDebug", "TestView context");
 - }
 - public TestView(Context context, AttributeSet attrs, int defStyle) {
 - super(context, attrs, defStyle);
 - Log.d("mDebug", "TestView context,attrs,defStyle attrs="+attrs.getAttributeValue(0));
 - }
 - public TestView(Context context, AttributeSet attrs) {
 - super(context, attrs);
 - Log.d("mDebug", "TestView context, attrs="+attrs.getAttributeValue(0));
 - }
 - @Override
 - protected void onDraw(Canvas canvas) {
 - // TODO Auto-generated method stub
 - super.onDraw(canvas);
 - Log.d("mDebug", "onDraw");
 - }
 - @Override
 - protected void onFinishInflate() {
 - // TODO Auto-generated method stub
 - super.onFinishInflate();
 - Log.d("mDebug", "onFinishInflate");
 - }
 - @Override
 - protected void onSizeChanged(int w, int h, int oldw, int oldh) {
 - // TODO Auto-generated method stub
 - super.onSizeChanged(w, h, oldw, oldh);
 - Log.d("mDebug", "onSizeChanged,w="+w+",h="+h+",oldw="+oldw+",oldh="+oldh);
 - }
 - }
 
问题: 构造函数的context为何物,attrs从何处来
看到这篇文章貌似解决了以上问题。 
http://blog.csdn.net/z103594643/article/details/6755017
扩展地址:http://developer.android.com/reference/android/view/View.html
android,view的执行过程onDraw、onSizeChanged,onFinishInflate的更多相关文章
- Android View的绘制过程
		
首先是view的绘制过程~最主要的分三部分 measure layout draw 看字面意思,计算,布局,画~ android中控件相当于是画在一个无限大的画布上的,那就产生了几个问题 画布无限大, ...
 - android权限申请执行过程
		
弹出的授权对口窗口实际上是一个activity(隐式intent启动上图第二个方块里)(com.android.packageinstaller.permission.ui.Grantpermissi ...
 - android view 中各函数的执行顺数
		
这个就好像是 activity 的生命周期一样,如果我们要使用自定义的 view,那么就很有必要了解一下 view 的那些能够被重写的函数的执行顺序.废话不多讲,以常用的5个函数为例子,见下文: pa ...
 - Android View 的绘制流程之 Layout 和 Draw 过程详解 (二)
		
View 的绘制系列文章: Android View 的绘制流程之 Measure 过程详解 (一) Android View 绘制流程之 DecorView 与 ViewRootImpl 在上一篇 ...
 - 简单研究Android View绘制三 布局过程
		
2015-07-28 17:29:19 这一篇主要看看布局过程 一.布局过程肯定要不可避免的涉及到layout()和onLayout()方法,这两个方法都是定义在View.java中,源码如下: /* ...
 - android 中view的绘制过程
		
view的绘制过程中分别会执行:onMeasure(会多次)计算view的大小,OnLayout(),确定控件的大小和位置 onDraw()绘制view 当Activity获得焦点时,它将被要求绘制自 ...
 - 《Android内核剖析》读书笔记 第13章 View工作原理【View重绘过程】
		
计算视图大小的过程(Measure) 视图大小,准确的来说应该是指视图的布局大小:我们在layout.xml中为每个UI控件设置的layout_width/layout_height两个属性被用来设置 ...
 - Android中View的绘制过程 onMeasure方法简述 附有自定义View例子
		
Android中View的绘制过程 onMeasure方法简述 附有自定义View例子 Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android fr ...
 - 【转】Android中View的绘制过程 onMeasure方法简述 附有自定义View例子
		
Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android framework将会处理绘制过程,Activity只需提供它的布局的根节点. 绘制过程从布 ...
 
随机推荐
- Java参数传递问题
			
参考资料:http://blog.sina.com.cn/s/blog_59ca2c2a0100qhjx.html http://blog.csdn.net/a412588063/article/ ...
 - ORACEL12c求和SUM(a+b)与SUM(a)+SUM(b)结果不一致问题
			
今天在oracle12c数据库遇到的问题,下面重现一下: 1.先创建一个临时表 temp.一个数据表bitest_sum; -- Create table create table PEC.BITES ...
 - 下载PhpStorm并进行激活
			
1.首先登陆PhpStorm官网http://www.jetbrains.com/phpstorm/ 点击附图中的download now 按钮 2.第二步根据os x \wind\ linux进行下 ...
 - Xcode-之项目重命名
			
一.前言 在iOS开发过程中,对于以前的项目或者想改一下项目的名字,都会遇到比较麻烦的事情.直接改项目名,然而它会牵扯一大堆问题,并且不能把所有的名字都能改过来.有些文件改了项目名后,引导路径错误,导 ...
 - Xcode-之CocoaPads
			
一.说明 CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以 ...
 - validform 怎么验证小数。
			
<input type="text" class="input-text" value="{$info.score}" placeho ...
 - JS复习:第八章
			
一.全局作用域: 所有在全局作用域中声明的变量.函数都会变成window对象的属性和方法.全局变量不能通过delete操作符删除,而window对象上定义的属性可以. 二.窗口大小 使用resizeT ...
 - jQuery第四章
			
jQuery中的事件和动画 一.jQuery中的事件 1.加载DOM (1)执行时机 $(document).ready()方法和window.onload方法有相似的功能,但是在执行时机方面是有区别 ...
 - hdfs zkfc –formatZK 之HadoopIllegalArgumentException: Bad argument: –formatZK
			
HadoopIllegalArgumentException: Bad argument: –formatZK从某文档中拷贝的命令,粘贴过来使用的,“–formatZK”有问题解决方法:手工输入此命令 ...
 - 安装Python package
			
下载对应的源码,往往都是.tar.gz,.zip的压缩包,解压. 打开windows的cmd,切换到对应目录 C: cd C:\xx setup.py install