Matrix(マトリックス)
AndroidにおけるMatrixは、2Dグラフィックスの変換を行うためのクラスです。このクラスにより、画像を拡大・縮小・回転・移動・せん断などの変換を行えます。
Matrix クラスにはさまざまなメソッドが用意されており、それらのメソッドを使用してマトリックスの設定と操作を行うことができます。
- setScale(float sx, float sy):マトリックスの拡大縮小の割合を設定します。
- マトリックスの回転角度を設定する
- setTranslate(float dx, float dy) :行列の平行移動距離を設定します。
- マトリクスのスキュー因子を設定します。
- postTranslate(float dx, float dy):変換を適用したうえで、移動を行う。
- postScale(float sx, float sy): 座標変換をした後に拡大・縮小を行います。
- 既存の変換に回転を適用する
- postSkew(float kx, float ky); 斜め回転を追加で適用します。
Matrixクラスを使用する場合、Matrixオブジェクトを作成し、そのメソッドを使用して変換を設定、適用します。例えば、アニメーションするグラフィックオブジェクトに平行移動マトリクスを作成して適用する場合は、以下のコードを使用します:
Matrix matrix = new Matrix();
matrix.setTranslate(100, 100);
canvas.drawBitmap(bitmap, matrix, null);
上記のコードでは、移動行列を作成してビットマップオブジェクトに適用し、ビットマップをキャンバス上で右下に100ピクセル移動させます。
Matrix クラスには値の取得と操作を行う他のメソッドがあり、getValues(float[] values) を使って行列の全値を取得したり、reset() を使って行列を単位行列にリセットできます。
Matrixクラスを用いることで、開発者はズーム、回転、平行移動などの各種2Dグラフィックス変換効果を実現できます。