在我的应用中,用户可以通过在屏幕上移动手指来执行某些操作,并在屏幕上放大时执行其他操作。 我的应用程序听取比例事件和触摸事件。
我的问题是当用户放大时,两个手指从不同时触摸屏幕,因此触摸屏幕的第一个手指在触摸事件上而不是按比例调用(当第二个手指调用onScale但功能错误时之前被称为。)
当用户放开手指时,我在缩放后遇到同样的问题。
有人知道该怎么办? 谢谢答案 0 :(得分:0)
在这种情况下,触摸事件的级别太低,因为您已经经历过。使用为您处理它的ScaleGestureDetector
。从official doc中获取的一个简单示例可能类似于
public MyCustomView(Context mContext){
...
// View code goes here
...
scaleDetector = new ScaleGestureDetector(context, new ScaleListener());
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
// Let the ScaleGestureDetector inspect all events.
if(!scaleDetector.onTouchEvent(ev)) {
// detect the move event here
}
return true;
}
相同的探测器模式应该用于其他更复杂的事件,如拖动。