zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    linux命令行
    mybatis中#{}和${}的区别
    @InitBinder的作用
    mui 实用封装销毁页面
    【SQLite】简单的基本使用步骤
    常用的一些操作方法
    【HttpWeb】Post和GET请求基本封装
    【接口验证】特性验证参数
    小谈单例模式
    vs下开端口直接调试iis
  • 原文地址:https://www.cnblogs.com/zwb7926/p/3585970.html
Copyright © 2011-2022 走看看