<< 前のエントリトップページ次のエントリ >>
2011年02月25日

ImageViewなMatrix〜続き(2)

ImageViewで表示されている画像の座標を探っていたのだが
結局Matrixから取得しようかと(^^;)
そこでImageViewからgetImageMatrixでMatrixを取得して
そのMatrixからgetValuesでfloat配列をゲットする

float[] values = new float[9];
mtx.getValues(values);

上記みたいな感じですね

配列の返り値は

int MPERSP_0 配列[6]
int MPERSP_1 配列[7]
int MPERSP_2 配列[8]
int MSCALE_X 配列[0]
int MSCALE_Y 配列[4]
int MSKEW_X 配列[1]
int MSKEW_Y 配列[3]
int MTRANS_X 配列[2]
int MTRANS_Y 配列[5]

配列の順番がバラバラな様だがぁw

照会する値はMSCALE_X、Y と MTRANS_X、Y
MSCALE_X、Yはスケールなので、そのまんまズーム率ですね。
MTRANS_X、Yは画像の左上が移動している値なのだが
ちと曲者っぽい
実際の値を見ると移動した値にスケールを掛けてる様だ。

なのでスケールが1.0fの時に100x150移動してる場合
スケールが2.0fの時には
MTRANS_X、Yに200、300の返り値が入っている。

だから画像の座標を取ろうと思うと
(MTRANS_X、Y + (画面座標XY - ImageView XY)) / MSCALE_X、Y
となりますかな。

でもXMLでフレームにImageViewが入っていると
getTopやgetLeftが変な感じなので少し考えてみるかぁ〜

投稿者:秀at 01:32| さんでープログラム(Android編) | コメント(0) | トラックバック(0)

◆この記事へのトラックバックURL:

http://control.onair-blog.jp/util/tb.php?us_no=1924&bl_id=1924&et_id=183704

◆この記事へのコメント:

※必須