在Android的2手指旋转手势监听器 [英] 2 Finger Rotation gesture listener in android
本文介绍了在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屋!
查看全文