代码之家  ›  专栏  ›  技术社区  ›  Namratha

子类化视图并重写OnDraw(画布)

  •  0
  • Namratha  · 技术社区  · 16 年前

    当我在活动中实例化myview时,为什么需要传递上下文,为什么需要将上下文传递给视图的构造函数?有什么意义?

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.graphics.Canvas;
    
    public class POCII extends Activity {
    
       myView mv = new myView(this);
       /** Called when the activity is first created. */
    
       @Override
       public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(mv);
       }
    }
    
    class myView extends View {
    
       public myView(Context context) {
          super(context);
       }
    
       @Override
       public void onDraw(Canvas canvas) {
          Paint paint = new Paint();
          canvas.drawRect(0,0,100,100, paint);
       }
    }
    
    2 回复  |  直到 15 年前
        1
  •  0
  •   Andy Zhang    16 年前

    视图超类需要运行它的上下文,以便访问某些资源,如当前主题等。

        2
  •  0
  •   Moss    16 年前

    视图需要知道当前应用程序上下文才能访问它。这里你有一些关于上下文的信息: http://developer.android.com/reference/android/content/Context.html