2012-03-31 117 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()中的坐标来渲染图像。

为改善性能,如果位图不会更改,则可以缓存该位图。