Android ImageView 单指旋转

5

我查看了很多帖子,但找不到答案。 我想旋转一个根图像,并用位于根图像下方的另一小图像进行旋转。

虽然旋转是有效的,但第一次按下它时,由于math.tan()函数,它会跳到45度,我认为我有一个计算问题。

       rotateImage.setOnTouchListener(new OnTouchListener() {

    @Override

public boolean onTouch(View view, MotionEvent event) {

final int action = MotionEventCompat.getActionMasked(event);

        switch (action) {
        case MotionEvent.ACTION_UP:
        break;
        case MotionEvent.ACTION_DOWN:

        rotateX = event.getRawX() - rotateImage.getWidth() / 2;
        rotateY = event.getRawY() - rotateImage.getHeight() / 2;


        break;

        case MotionEvent.ACTION_MOVE:

        float angle = (float) Math.toDegrees(Math.atan2(event.getRawY() - rotateY, event.getRawX() - rotateX));

        if (angle < 0){
        angle += 360;
        }

        mBinding.getRoot().setRotation(angle);


        }

        return true;
        }
        });

请给予建议。


1
我认为这个库可以帮助你很多,https://github.com/kencheung4/android-StickerView 请看一下。 - Reyansh Mishra
非常好的参考资料!谢谢! - joseRo
找到了类似的问题和答案。https://dev59.com/-VsW5IYBdhLWcg3wk4DM - Fung
1个回答

4

这里有一个库,可以完全满足你的需求。 https://dev59.com/rVjUa4cB1Zd3GeqPVuiV#47861501 - user2288580

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接