Categories
SugiBlog ホームページ制作・システム開発

画像(ImageView)の回転 Matrix

Matrixを使ってImageViewを回転させます。
※ImageViewのIDをarrow、サイズを75×75とします。

ImageView imageView;
imageView = (ImageView)findViewById(R.id.arrow);

Matrix mtrx = new Matrix();
imageView.setScaleType(ScaleType.MATRIX);

mtrx.postRotate(90.0f, imageView.getWidth()/2, imageView.getHeight()/2);

imageView.setImageMatrix(mtrx);
imageView.invalidate(); //再描画

上記のようにするといけると思うんですが、
リストビューを使うアプリでやると最初が表示されない。
以下のように直接数値を書くといける。

ImageView imageView;
imageView = (ImageView)findViewById(R.id.arrow);

Matrix mtrx = new Matrix();
imageView.setScaleType(ScaleType.MATRIX);
mtrx.preTranslate(-36, -36); //拡大縮小の中心点をずらす、一旦動かす
mtrx.postRotate(90.0f);
mtrx.postTranslate(36, 36);  //ずらした位置を元に戻す

imageView.setImageMatrix(mtrx);
imageView.invalidate(); //再描画
14,605 views

コメントを残す

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

*