在选择点旋转图像

时间:2011-11-27 00:11:53

标签: android image rotation

所以我有一般的图像旋转问题。我能够找到如何进行旋转并使其正确缩放,但现在我想将其设置为使图像在用户触摸的位置旋转。

目前,一旦触摸,图像的顶部将朝向触摸最初发生的位置旋转。无论如何,它是否会停留在图像上的触摸点并从那一点开始旋转?

感谢您的帮助。

1 个答案:

答案 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;}