画像の回転処理
画像を回転させるには
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にすることで割り出している