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




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

    博客分类: 
  • android
android view 顺序 OnSizeChanged 
小试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












android view的一些常用触发方法 

分类: android   2523人阅读  评论(0)  收藏  举报
android xml

onFinishInflate() 当View中所有的子控件 均被映射成xml后触发

onMeasure(int, int) 确定所有子元素的大小

onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发

onSizeChanged(int, int, int, int) 当view的大小发生变化时触发

onDraw(Canvas) view渲染内容的细节

onKeyDown(int, KeyEvent) 有按键按下后触发

onKeyUp(int, KeyEvent) 有按键按下后弹起时触发

onTrackballEvent(MotionEvent) 轨迹球事件

onTouchEvent(MotionEvent) 触屏事件

onFocusChanged(boolean, int, Rect) 当View获取 或失去焦点时触发 

onWindowFocusChanged(boolean) 当窗口包含的view获取或失去焦点时触发

onAttachedToWindow() 当view被附着到一个窗口时触发

onDetachedFromWindow() 当view离开附着的窗口时触发,Android123提示该方法和  onAttachedToWindow() 是相反的。

onWindowVisibilityChanged(int) 当窗口中包含的可见的view发生变化时触发

版权声明:本文为博主原创文章,未经博主允许不得转载。


你可能感兴趣的:(android)