2012-03-31 139 views
0

我有一個代碼,我畫的圖像:Canvas和圖像繪製在佈局

class Panel extends View { 

     public Panel(Context context) { 
      super(context); 
     } 

     @Override 
     public void onDraw(Canvas canvas) { 
      Bitmap _scratch = BitmapFactory.decodeResource(getResources(), R.drawable.calvin_logo_small); 
      canvas.drawColor(Color.WHITE); 
      canvas.drawBitmap(_scratch, x-point, y-point, null); 
     } 
    } 

我怎麼能在我的活動得出這樣的形象,但我不想改變可能佈局。我有佈局:setContentView(R.layout.main);這可以在畫布上畫這個lauout嗎?我有這個活動,這個佈局有很多組件。我只想要用畫布點擊的地方。這是想法。我開始使用我的setContentView(R.layout.main);開始活動的應用程序。之後,我點擊屏幕和畫布繪製圖片,在我點擊的地方。這有可能做到嗎?

回答

1

您的代碼應該工作。只需覆蓋視圖的onTouchEvent(),將觸摸事件的座標存儲在場變量中,並將invalidate()存儲在視圖中,以便調用onDraw()。使用onDraw()中的座標來渲染圖像。

爲改善性能,如果位圖不會更改,則可以緩存該位圖。