我有一个用于绘制图像的代码:
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);
启动活动的应用程序。之后,我点击屏幕和画布在我点击的地方绘制图片。这有可能吗?
答案 0 :(得分:1)
您的代码应该有效。只需覆盖视图的onTouchEvent()
,将触摸事件的坐标存储在字段变量中,并invalidate()
保存视图,以便调用onDraw()
。使用onDraw()
中的坐标来渲染您已经完成的图像。
为了提高性能,如果位图不会改变,可以缓存位图。