ユーザークリックに基づいてビットマップイメージを10度回転します。数多くのstackoverflowとgoogleの回答に続いて、Matrix rotationのさまざまな組み合わせを試みました。Androidでビットマップを回転させずにスムーズにイメージセンターを回転させる方法
しかし、イメージは実際には期待どおりに回転せず、キャンバスの中心については回転+振動のジッタがあります。テストするには、オブジェクトの描画メソッドが呼び出されるたびに回転角を10度(クリックの代わりに)増加させます。画像は左右対称の円[64x64囲み矩形]で、ホイールのように自分自身の中心で画面の中心を回転することが期待されますが、回転して右下に向かって斜めに移動し、振動的に画面の中心まで後退します。
public void draw(Canvas canvas) {
Matrix matrix = new Matrix();
rotation += 10;
float px = this.viewWidth/2;
float py = this.viewHeight/2;
matrix.setRotate(rotation, bitmap.getWidth()/2, bitmap.getHeight()/2);
Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, getImgWidth(), getImgHeight(), matrix, true);
canvas.drawBitmap(newbmp, px - (getImgWidth()/2), py - (getImgHeight()/2), null);
}
ありがとう! Matrixを「描画」メソッドから移動し、マトリックスがリセットされないことを保証することで、これを実現しました。[滑らかな回転効果をもたらします]また、最初の2つのポスト*メソッドの代わりに、 'matrix.setRotate(rotation、bitmap.getWidth()/ 2、bitmap.getHeight()/ 2); – Anshul
この回答をありがとう。それは私の日を節約する。 – Siddharth
このビューはここにありますか? –