Matrixを利用して、対象の画像を回転させようとすると、
Matrix mtx = new Matriix(); mtx.postRotate(r);
画像の左上を中心に回転してしまって、思い通りに書いてしません。
そんな場合には、画像のサイズを横幅w、縦幅hとするとき
mtx.postTranslate(-w/2,-h/2); mtx.postRotate(r);
とすると、中心点が思ったとおりの位置で回転ができます。
だけど、これだと、画像が左上によってしまうので、修正をして、
mtx.postTranslate(-w/2,-h/2); mtx.postRotate(r); mtx.postTranslate(w/2,h/2);
な感じにしてあげると、画像の中心で回転したように利用する事ができます。
結構カンタンです。ここから画像の位置を更に変更する事も可能なのですが、
postTranslate
と
setTranslate
でいろいろなところで、使われる事もあるので補足として覚えておきたいのですが、
postの方は現在かかっている変更に追加で変更を加えます。一方でsetの方は現在かかっている変更をリセットしてあらたに変更をする場合に利用します。
ここがあいまいだと何度やってもうまくできないのでご注意ください!!