gpt4 book ai didi

java - 多点触摸事件的问题

转载 作者:行者123 更新时间:2023-12-02 05:35:12 26 4
gpt4 key购买 nike

我试图了解多点触控事件的工作原理,但我的代码没有按我的预期运行。仅当我随后快速将三个或更多手指放在屏幕上时,才会识别多个触摸:

@Override
public boolean onTouchEvent(MotionEvent event) {

int x = (int) event.getX();
int y = (int) event.getY();

switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
doSomeUnimportantStuff();
return true;

case MotionEvent.ACTION_POINTER_DOWN:
for (int i = 0;i < event.getPointerCount()-1;i++) {
Log.d("Multi-Touch", Float.toString(event.getX(i)));
return true;
}
}
return true;
}

为什么我放在屏幕上的第二根手指没有被识别,为什么我的手指放在屏幕上的速度会影响多次触摸是否被识别?

最佳答案

根据 Android 文档:

You should always use the method getActionMasked(event) (or better yet, the compatability version MotionEventCompat.getActionMasked(event)to retrieve the action of a MotionEvent

要了解您是否有单点或多点触摸事件,请使用以下代码 fragment (同样取自 Android 文档)。您基本上会检查是否有多个指针,如果有,则显然屏幕上有多个触摸。

if (event.getPointerCount() > 1) {
//MULTI TOUCH EVENT IS TRIGGERED!
// The coordinates of the current screen contact, relative to
// the responding View or Activity.
xPos = (int)MotionEventCompat.getX(event, index);
yPos = (int)MotionEventCompat.getY(event, index);

} else {
// Single touch event

xPos = (int)MotionEventCompat.getX(event, index);
yPos = (int)MotionEventCompat.getY(event, index);
}

关于java - 多点触摸事件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25053014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com