代码改变世界

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

2014-03-07 11:00  地图315  阅读(621)  评论(0编辑  收藏  举报

小试view的执行过程,此是入门,高手绕道。 

-------------------------------------------------------------------------------- 
此为抛砖引玉,个人看官自己发挥。 
结果如下:
 

Java代码  收藏代码
  1. 12-05 22:23:03.587: D/mDebug(9715): TestView context, attrs=@2131034112  
  2. 12-05 22:23:03.597: D/mDebug(9715): onFinishInflate  
  3. 12-05 22:23:03.667: D/mDebug(9715): onSizeChanged,w=240,h=282,oldw=0,oldh=0  
  4. 12-05 22:23:03.727: D/mDebug(9715): onDraw  
  5. 12-05 22:23:03.757: D/mDebug(9715): onDraw  


[size=l代码如下:[/size] 

Java代码  收藏代码
  1. public class TestView extends View {  
  2.   
  3.     public TestView(Context context) {  
  4.         super(context);  
  5.         Log.d("mDebug""TestView context");  
  6.     }  
  7.   
  8.       
  9.       
  10.     public TestView(Context context, AttributeSet attrs, int defStyle) {  
  11.         super(context, attrs, defStyle);  
  12.         Log.d("mDebug""TestView context,attrs,defStyle attrs="+attrs.getAttributeValue(0));  
  13.     }  
  14.   
  15.   
  16.   
  17.     public TestView(Context context, AttributeSet attrs) {  
  18.         super(context, attrs);  
  19.         Log.d("mDebug""TestView context, attrs="+attrs.getAttributeValue(0));  
  20.     }  
  21.   
  22.   
  23.   
  24.     @Override  
  25.     protected void onDraw(Canvas canvas) {  
  26.         // TODO Auto-generated method stub  
  27.         super.onDraw(canvas);  
  28.         Log.d("mDebug""onDraw");  
  29.     }  
  30.   
  31.     @Override  
  32.     protected void onFinishInflate() {  
  33.         // TODO Auto-generated method stub  
  34.         super.onFinishInflate();  
  35.         Log.d("mDebug""onFinishInflate");  
  36.     }  
  37.   
  38.   
  39.   
  40.     @Override  
  41.     protected void onSizeChanged(int w, int h, int oldw, int oldh) {  
  42.         // TODO Auto-generated method stub  
  43.         super.onSizeChanged(w, h, oldw, oldh);  
  44.         Log.d("mDebug""onSizeChanged,w="+w+",h="+h+",oldw="+oldw+",oldh="+oldh);  
  45.     }  
  46.   
  47. }  



问题: 构造函数的context为何物,attrs从何处来 

看到这篇文章貌似解决了以上问题。 
http://blog.csdn.net/z103594643/article/details/6755017 

扩展地址:http://developer.android.com/reference/android/view/View.html