画像の回転処理

画像の回転処理

画像を回転させるには
ImageViewで
scaleType=”matrix”
として
回転用のMatrixを作成して
setImageMatrix()を呼び出して実現する

まずは、レイアウトファイルで定義

<ImageView
android:id="@+id/imageturn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:scaleType="matrix"
android:src="@drawable/ic_launcher"/>

そして、Javaで
Matrixの
postRotate()で回転情報をセットして
setImageMatrix()

ImageViewへ回転を適用する

まずは、タップするたびに90度回転する情報の設定

mRotate +=90F;
if(mRotate >= 360F){
  mRotate =0;
}

これは、角度が360度以上はないから

次に、画像回転処理

Matrix mtrx = new Matrix();

mtrx.postRotate(mRotate, ImageView.getDrawable().getBounds().width()/2,
mImageView().getDrawable().getBounds().height()/2);

mImageView.setImageMatrix(mtrx);

これで、タップするたび画像回転する

また、postRotate()の引数は、
前から順に
回転角度
回転の中心X座標
回転の中心Y座標
となる

今回なら
回転角度 mRotate

回転の中心x座標は
ImageViewに対して
getDrawable().getBounds().width()
でセットされている画像の幅を取得し
その数値を1/2にすることで割り出している

回転のY座標も同様に
ImageViewに対して
getDrawable.().getBounds().height()
でセットされている画像の高さを取得
その数値を1/2にすることで割り出している

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です