[Android] Matrixで画像を回転、フリップ、縮小させる

画像を拡大、回転させたりするときは、Matrixを使います。ただし基本的に画像処理はパフォーマンス、メモリを使いますので多用することは避けましょう。
 

Android Studio 3.0.1
Android 8.0



Matrix

 
最初に画像をdrawableに置きます。これを回転、リサイズ、フリップさせていきます。
 

kurumi.jpg

kurumi.jpg

 

目次
1.ImageView
  リソース画像をBitmapで取り出します
2.Rotation
  setRotateで画像を回転させる
3.Resize
  preScaleで画像の拡大・縮小
4.Flip
  preScaleの符合を変えてフリップ
5.サンプル動画
 

ImgeView

 
画像をImageViewにセットするためには

とすればできますが、画像をこの後 Mtrix に渡していくためにBitmapとして取り出します。

まとめてみると

MainActivity.java

activity_main.xml

 

 

Rotation (setRotate)

 
画像を90度回転させます。
 

 
px, pyを基点として回転させます。
 
Mtrixを使ってBitmapを再構築します。

 
MainActivity.java

 
レイアウトは同じです。
 
90°回転しました
 

 

Resize (preScale)

 
画像を縮小させてみます。ここでは prescale を使います

MainActivity.java

 
画像が縮小されました。
 

 

Flip (preScale)

 
ボタンの背景として画像を水平方向にフリップさせてみます。
Buttonの背景とする場合は、表示サイズを適正にしないといけませんので、縦横比率と実際の幅、それにスクリーン幅を求めて計算していきます。
 
フリップは縮小拡大と同じですが符号を変えます
preScale(-1.0f, 1.0f)
と設定すると水平方向でのフリップです。
垂直方向は
preScale(1.0f, -1.0f)
 
MainActivity.java

activity_main.xml

 

水平方向にフリップしました

 

 

サンプル動画

 

 
 
関連:

Reference:
Matrix

誤字脱字、意味不明で分からにゃイ、
などのご意見はこちらから mailフォーム

ブックマークしておくと便利です このエントリーをはてなブックマークに追加


 


ページのトップへ戻る




シェアする

  • このエントリーをはてなブックマークに追加

フォローする