0

Androidで長方形のビットマップをドラッグすると、これを使用してビットマップを描画します

//short cut code, after getting the new position from event
int x = event.x;
int y = event.y;
canvas.drawRect(bitmap, x - bitmapwidth/2,y-bitmapheight/2,null)

ただし、これには問題があります。幅の広いビットマップがあり、ビットマップの左側の部分に触れた場合、ビットマップはイベントからの新しいタッチ座標を中心に配置されます。

ビットマップをドラッグし、ドラッグ ポイントに相対的な位置を維持する方法はありますか? マウスドラッグの動作と同じように?

ありがとう

4

1 に答える 1

0

私が理解しているように、指が触れたときの開始点に対してビットマップをドラッグしたいですか?

このコードはトリックを行う必要があります (その場合):

boolean startCoordinatesDefined;
Integer xStart;
Integer yStart;

if(touchdown) {
if(startCoordinatesDefined == false) {
startCoordinatesDefined = true;
xStart = event.x;
yStart = event.y;
}
canvas.drawRect(bitmap, event.x - xStart - bitmapwidth/2, event.y - yStart - bitmapheight/2, null);
}
else {
startCoordinatesDefined = false;
xStart = null;
yStart = null;
}
于 2012-07-13T18:01:59.583 に答える