当前位置:首页 > 开发 > 移动开发 > 正文

android,view的执行过程onDraw、onSizeChanged,onFinishInflate

发表于: 2011-12-05   作者:ling凌yue月   来源:转载   浏览次数:
摘要: 小试view的执行过程,此是入门,高手绕道。 -------------------------------------------------------------------------------- 此为抛砖引玉,个人看官自己发挥。 结果如下: 12-05 22:23:03.587: D/mDebug(9715): TestView context, attrs=
小试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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它
Android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它
Android的View绘制是从根节点(Activity是DecorView)开始,他是一个自上而下的过程。View的绘制经
大家都知道Android中加载view是从Activity的onCreate方法调用setContentView开始的,那么View的具体
View通过View.onDraw(Canvas canvas)来Draw. 我们可以定义自己的继承于View的TestView,然后重载View
刚过完自己的本命年,新的一年希望自己有个新的开始,祝自己在新的一年里一帆风顺,同时也祝广大的
参考(1)摘抄 Android中View的绘制过程   当Activity获得焦点时,它将被要求绘制自己的布局,And
setContentView 只要你使用过Activity,那么你一定使用过setContentView这个方法。一般都是这样调用
一、android中view的measure过程总概 视图大小计算的过程是从根视图measure()方法开始,接着该方法
转载请说明出处:http://blog.csdn.net/ff20081528/article/details/17784911 刚过完自己的本命年,
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号