Android アプリ開発「MATRIX」

Androidアプリの開発に役立つサンプル集

ボタンを押すと ImageView 画像が回転するサンプル(その①)画像の左上を基準に画像を回転させる

ボタンを押すと ImageView の画像が回転するサンプル

まず、レイアウトXLMファイルを利用して画面の適当な場所に ImageView の画像とボタンを配置します。

f:id:vw-dsg:20160614140509p:plain

レイアウトXMLサンプル(抜粋)

レイアウトXMLファイル(activity_main.xml)にある ImageView の部分です。回転させる画像のスケールタイプを「matrix」に設定して下さい。これを忘れると画像が回転しません。

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/sample"
android:scaleType="matrix"
android:layout_marginTop="100dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />

Javaサンプルソース

画面にあるボタンを押すと画像が45度回転する簡単なサンプルです。

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private ImageView mImageView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mImageView = (ImageView)findViewById(R.id.imageView); //イメージビューを取得
findViewById(R.id.button_kaiten).setOnClickListener(this); //ボタンにクリック処理を設定
}

//ボタンがクリックされた時の処理
public void onClick(View v) {
Matrix matrix = new Matrix(); //マトリックスを作成
matrix.postRotate(45); //ここに好きな回転角度を設定する
mImageView.setImageMatrix(matrix); //イメージビューにマトリックスをセット
}
}

実行結果

一応回転しましたが、サンプルの「postRotate」は回転の中心がImageViewの中心ではなく左上の角(かど)になってしまうため「A」の文字の一部分しか見えなくなってしまいました。

f:id:vw-dsg:20160614153219p:plain

備考・その他

ImageViewの中心で回転させるためには中心点を指定してから回転させる方法がありますが、この方法については以下を参照してください。

android-java.hatenablog.jp

END