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




小试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)  收藏  举报

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发生变化时触发

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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值