1

これを使用する場合:

mCamera.rotateY(45);
mCamera.getMatrix(mMatrix);
mMatrix.preTranslate(-pivotX, -pivotY);
mMatrix.postTranslate(pivotX + centerX, pivotY + centerY);

そして、やります:

canvas.drawBitmap(bitmap, mMatrix, null);

そうすると、描かれた絵はより高く、よりスリムになり、マトリックスは絵全体にうまく適用されます。さて、回転サイズを計算する方法はありますか?画像を拡大縮小してフィットさせたいのですが、回転すると、親の制約のために上下の一部がクリップされます。ありがとう!

編集:

画像を回転させると、rotateYの範囲は0から90になります。

4

2 に答える 2

1

マッピングされたコーナーはx座標とy座標の最大/最小になるため、マトリックスにビットマップのコーナーをマップさせてから、境界を計算することができます。多分あなたはあまり多くのif節なしでそれをすることができます:)

編集: チェックアウト

RectF r = new RectF(/*your bitmap's corners*/);
matrix.mapRect(r);

そうすれば、rの新しいサイズを取得する必要があります。

于 2012-11-09T08:23:15.383 に答える
0

45°に固執する場合は、ピタゴラスが鍵となります

于 2012-11-08T17:43:29.663 に答える