我正在尝试开发可用作PC鼠标的应用程序。我想用加速度计来做到这一点。到目前为止,我已经设法使它适用于屏幕上的X +和Y-轴(左和上),但是,如果我尝试将鼠标向下或向右(-X和+ Y轴)移动,它将不起作用。我不确定是什么问题,任何建议将不胜感激。
public void onSensorChanged(SensorEvent event) {
deltaX = Math.abs(lastX - event.values[0]);
deltaY = Math.abs(lastY - event.values[1]);
deltaX = deltaX * 10;
deltaY = deltaY * 10;
if(deltaX > 2 && deltaY > 2){
sendMSG((int)deltaX +"&"+(int)deltaY +"\n");
Log.d("Velocity", "X + Y Values :: " + deltaX + deltaY);
}
}
这是我获取坐标的方法,然后将其发送到我的服务器,我知道我的问题出在此方法的某处,以及我如何处理坐标,但是我不确定如何解决它。
由于您使用abs
函数计算了增量,所以它们始终为正,并且您的运动将在一个方向上进行。尝试这样的事情-
deltaX = (lastX - event.values[0]) * 10;
deltaY = (lastY - event.values[1]) * 10;