在Android的2手指旋转手势监听器 [英] 2 Finger Rotation gesture listener in android

查看:504
本文介绍了在Android的2手指旋转手势监听器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图找出使图像旋转,随着用户的手指拖动它向左或向右的最佳方式,而旋转的角度。

 浮动X1 = lastEvent [0]  -  lastEvent [1];
浮Y1 = lastEvent [2] - lastEvent [3];
浮动degrees1 =(浮点)(Math.atan2(Y1,X1));
浮χ2= event.getX(0) - event.getX(1);
浮Y2 = event.getY(0) - event.getY(1);
浮动degrees2 =(浮点)(Math.atan2(Y2,X2));浮度=(浮点)Math.toDegrees(degrees2-degrees1);

不过,这并不像旋转,我想它..是否有旋转手势的监听器?谢谢


解决方案

  / **确定前两个手指之间的度* /
    私人浮动旋转(MotionEvent事件){
        双delta_x =(event.getX(0) - event.getX(1));
        双delta_y =(event.getY(0) - event.getY(1));
        双弧度= Math.atan2(delta_y,delta_x);
        如果(Constant.TRACE)Log.d(旋转~~~~~~~~~~~~~~~~~,delta_x +##+ delta_y +##+弧度+##
                        + Math.toDegrees(弧度));
        回报(浮)Math.toDegrees(弧度);
    }

I'm trying to figure out the best way to make an image rotate along with a user's finger dragging it left or right, and the angle of rotation.

float x1 = lastEvent[0] - lastEvent[1];
float y1 = lastEvent[2] - lastEvent[3];    
float degrees1 = (float)(Math.atan2(y1, x1));      
float x2 = event.getX(0) - event.getX(1);
float y2 = event.getY(0) - event.getY(1);
float degrees2 = (float)(Math.atan2(y2, x2));   

float degrees = (float) Math.toDegrees(degrees2-degrees1);

But it doesn't rotate like i want it.. Is there any listener for rotation gesture? Thanks

解决方案

/** Determine the degree between the first two fingers */
    private float rotation(MotionEvent event) { 
        double delta_x = (event.getX(0) - event.getX(1));
        double delta_y = (event.getY(0) - event.getY(1));
        double radians = Math.atan2(delta_y, delta_x);       
        if (Constant.TRACE) Log.d("Rotation ~~~~~~~~~~~~~~~~~", delta_x+" ## "+delta_y+" ## "+radians+" ## "
                        +Math.toDegrees(radians));
        return (float) Math.toDegrees(radians);
    }

这篇关于在Android的2手指旋转手势监听器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆