Здесь мой код получает значение для bmpX
и bmpY
и использует их для рисования растрового изображения в этом месте на экране. Это работает точно так, как я хочу, но я предпочел бы использовать функцию canvas.translate()
для обработки движения изображения, а не только canvas.drawBitmap()
, потому что я буду применять другие элементы рисования к холсту, и я хочу, чтобы все они двигались одинаково количества и направления.using 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);
}
}
Надеюсь, я достаточно подробно объяснил свою проблему. Благодаря!