タッチイベントのMotionEvent.ACTION_MOVEで、回転させる時の角度を計算する。
こんな感じ
double rotate
touchX=event.getX();
touchY=event.getY();
rotate+=Math.atan2(touchY-getHeight/2,touchX-getWidth()/2);
そして、このrotateをcanvasクラスで呼び出したrotateメソッドの引数にて使用する。
canvas.rotate((int)rotate,getWidth()/2,getHeight()/2);
この、rotateメソッドの引数は
引数(角度,回転軸のX、回転軸のY)
画像の回転で注意しなくてはいけないのは、画像が回転しているのでは無く、canvasそのものが回転している、という事で、javaの時のGraphics2Dの時と同じ。
なので、画像の中心で回転しているように見せるには、rotateメソッドの引数の回転軸XとYそれぞれ
画面の幅と高さをそれぞれ1/2したものを入れている。
その他のタッチイベント関連
0 件のコメント:
コメントを投稿