2015年5月12日火曜日

AndroidのBitmap+Matrixの回転の中心は何処?

Android Studioでの開発は、クールではないですが、Android SDKに関するドキュメントはとても体系的にまとめられており、わかりやすいです。
で、それを読んだにも関わらずはまったこと。
Matrix matrix = new Matrix();
matrix.setRotate(45, bitmap.getWidth()/2,bitmap.getHeight()/2);
canvas.setMatrix(matrix);
canvas.drawBitmap(bitmap, width-bitmap.getWidth(), height-bitmap.getHeight(), null)
を実行した時、matrixがいつかけられるのかという話。

開発している時、ずっとmatrixをかけてから描画するものだと思い、回転の中心を画像の中心のつもりで値を設定していました。 それにも関わらず、回転しかさせていないのに何故か移動する! 不思議すぎて不思議すぎて悩んでいると、なんと描画してから回転のようで、回転の中心を画面全体の絶対座標にするとちゃんとできました・・・

これで解決!

0 件のコメント:

コメントを投稿