我的代码在这里接收一个值bmpX
并bmpY
使用它们在屏幕上的该位置绘制位图。这完全符合我的要求,但我宁愿使用该canvas.translate()
函数来处理图像的移动,而不仅仅是canvas.drawBitmap()
,因为我会将其他绘图元素应用到画布上,并且我希望它们都移动相同的数量并且方向。
我的问题是:我可以在哪里移动canvas.drawBitmap()
代码,以便它在开始时仅绘制到画布上,但在此之后的任何时间都可以使用它来移动canvas.translate()
?无论我将canvas.translate()
. 我正在想象它可以将图像“粘贴”到画布上,可以这么说,然后移动画布,这也随之移动图像。
public void run() {
// TODO Auto-generated method stub
while(isRunning) {
if(!surfaceHolder.getSurface().isValid()) {
continue;
}
canvas = surfaceHolder.lockCanvas();
canvas.drawRGB(255, 255, 255);
canvas.drawBitmap(bmp, bmpX-(bmp.getWidth()/2),
bmpY-(bmp.getHeight()/2), null);
//canvas.translate(bmpX, bmpY);
surfaceHolder.unlockCanvasAndPost(canvas);
}
}
我希望我足够清楚地解释了我的问题。谢谢!