0
我的代碼在這裏收到bmpX
和bmpY
的值,並使用它們在屏幕上的該位置繪製位圖。這完全按照我想要的方式工作,但我寧願使用canvas.translate()
函數來處理圖像的移動,而不僅僅是canvas.drawBitmap()
,因爲我將在畫布上應用其他繪圖元素,並且我希望它們都移動相同數量和方向。使用canvas.drawBitmap()與canvas.translate()
我的問題是:在哪裏可以將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);
}
}
我希望我能夠清楚地解釋我的問題。謝謝!