所以我有一般的图像旋转问题。我能够找到如何进行旋转并使其正确缩放,但现在我想将其设置为使图像在用户触摸的位置旋转。
目前,一旦触摸,图像的顶部将朝向触摸最初发生的位置旋转。无论如何,它是否会停留在图像上的触摸点并从那一点开始旋转?
感谢您的帮助。
答案 0 :(得分:0)
修正了我的代码。只需在调用ACTION_DOWN时获取初始度,然后在ACTION_MOVE期间将旋转偏移该度数。 代码发布在下面
//Finds the initial degree where my finger is pressed.
case MotionEvent.ACTION_DOWN:{
double arc = Math.atan2(event.getX() - v.getWidth()/2, v.getHeight()/2 - event.getY());
initDegree = (float) Math.toDegrees(arc);
setTitle("counter" + counter++);
break;}
// Using the Initial Degree change I offset the degrees to send to my rotate function.
case MotionEvent.ACTION_MOVE:{
double arc = Math.atan2(event.getX() - v.getWidth()/2, v.getHeight()/2 - event.getY());
float degrees = (float) Math.toDegrees(arc);
rotate(degrees-initDegree);
break;}