AndroidでBitmapを回転させるには?

AndroidでBitmapを回転させるには?

// ビットマップの幅と高さ
int width = 240;
int height = 480;

// オリジナルのビットマップ作成
Bitmap bmpOrig = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);

// 回転マトリックス作成(90度回転)
Matrix mat = new Matrix();
mat.postRotate(90);

// 回転したビットマップを作成
Bitmap bmp = Bitmap.createBitmap(bmpOrig, 0, 0, width, height, mat, true);


createBitmap()を二回使っているけど、1回目と2回目は引数が違うところがポイント。2回目でオリジナルのビットマップを回転させたビットマップを作っている。

この2回目のcreateBitmap()で感心したのは、元の画像を45度で回転させた場合でも描画領域がちゃんと広がっているところ。普通なら切れたりするはず。すばらしい。


ところで、初めに考えたのはImageView.setRotation()を使うことだったのだけど、これがまた・・・API Level 11以上だったので使えなかった_| ̄|○

コメント

このブログの人気の投稿

レオナルド・ダ・ビンチはなぜノートを「鏡文字」で書いたのか?

macでsmb(samba)共有サーバーに別名で接続(別アカウント名で接続)する方法

Google Mapの各ズームレベルごとのピクセル数と距離の関係