2

ビットマップの位置を変更すると同時に回転させる方法を知りたいです。キャンバスに絵を描いています。

現在、次のコード行を使用しています。

canvas.drawBitmap(bitmap, posX, posY, paint);

回転にマトリックスを使用するのが最良の選択肢だと思いますか? 問題は、上記のコード行が行列ではなく位置を取ることです。

同様のコード行もあります。

canvas.drawBitmap(bitmap, matrix, paint);

これは行列を取りますが、位置は取りません。

どうすればいいですか?

4

2 に答える 2

1
Matrix matrix = new Matrix();
matrix.SetRotate(90,pivotX,pivotY);
matrix.PostTranslate(positionX,positionY);
canvas.drawBitmap(bitmap, matrix , null);

つまり、回転後の位置を設定します。

于 2015-11-24T12:49:55.010 に答える
0

posMatrix として行列に位置を取り、回転行列で乗算します。次に、結果の行列をパラメーターとして渡します。

編集 - -

Matrix myTransformedMatrix = new Matrix();
myTransformedMatrix.setRotate(<rotation in dergrees>);
myTransformedMatrix.setTranslate(<translation in points>);

canvas.drawBitmap(bitmap, myTransformedMatrix, paint);

マトリックス クラスの詳細については、http://developer.android.com/reference/android/graphics/Matrix.html を参照してください

于 2012-10-28T16:48:16.157 に答える