【Android】ImageViewの画像を180度回転させる方法

村上 著者:村上

【Android】ImageViewの画像を180度回転させる方法

久しぶりにネイティブアプリを開発しておりますが、その中で、ImageViewの回転が意外と面倒だったので、備忘録としてまとめ。

経緯としては、下の画面のようなじゃんけんアプリを作っている際、相手の手を回転させたくて方法を調べました。

些細なことなんですけど、じゃんけんは相手の手が自分の手とは逆なのが普通なので、こうしたほうがよりそれらしくなるんですよね。

 

画像の回転や縮小・拡大には Matrix を利用します。
が、基本的に画像処理は重い処理なので、あまり多用しないように気を付けてください。

なお、今回参考にさせていただいた記事はこちら。

[Android] Matrixで画像を回転、フリップ、縮小させる
https://akira-watson.com/android/matrix.html

コードは下記のとおりです。
onCreate() 内に記述してください。

Image View imageView = findViewById(R.id.[ImageViewのID]);
Bitmap bitmap_origin = BitmapFactory.decodeResource(getResources(), [画像パス]);

// 画像の横、縦サイズを取得
int imageWidth = bitmap_origin.getWidth();
int imageHeight = bitmap_origin.getHeight();

// Matrix インスタンス生成
Matrix matrix = new Matrix();
 
// 画像を中心に180度回転
matrix.setRotate(180, imageWidth/2, imageHeight/2);
 
// 180度回転したBitmap画像を生成
Bitmap bitmap_rotate = Bitmap.createBitmap(bitmap_origin, 0, 0, imageWidth, imageHeight, matrix, true);
 
imageView.setImageBitmap(bitmap_rotate);

コードを見てもらえれば分かりますが、CSS のように単純に回転はできず、画像そのものをビットマップに変換してから、回転させて表示するという処理が必要になります。
少々面倒ですが…こうしてコードをまとめておけば、以降はこれをコピー&ペーストするだけで済みますね。

 

以上、ImageViewの画像を回転する方法でした。

  • この記事いいね! (0)

著者について

村上

村上 administrator