2012年6月23日土曜日

[Android]Matrixで表示位置を絶対座標で指定する


Matrixで位置を移動する場合、
preTranslate()
setTranslate()
postTranslate()
を使います。

が!!!

すでに指定されていた場合、
その座標を基点にして移動します。(相対座標)

さらに、
setTranslate()を使うと、
回転やスケールもリセットされてしまうのです。


今回は、絶対座標が分かっていて、
その座標を指定する方法です。
(回転やスケールも維持したままです)

便利なAPIが用意されてなさそうなので、以下のような方法で値を指定します。

1.
matrix.getValues(values)
で値を取り出します。

2.
取り出した値に値をセットします
values[Matrix.MTRANS_X] = 移動したいx座標;
values[Matrix.MTRANS_Y] = 移動したいy座標;

3.
セットした値をmatrixに戻します
matrix.setValues(values)

0 件のコメント:

コメントを投稿