java 多点触控_java - pointerIndex超出Android多点触控范围 - SO中文参考 - www.soinside.com...

我有一个触摸事件异常,导致我的游戏在平板电脑(或更具体地,蜂窝)上崩溃。我的游戏在手机上运行正常,并且我从未听说过任何未运行的人都会发生这种情况Android 3.0或更高版本。这是相关的日志信息...E/AndroidRuntime(26487): java.lang.IllegalArgumentException: pointerIndex out of range

E/AndroidRuntime(26487): at android.view.MotionEvent.nativeGetAxisValue(Native Method)

E/AndroidRuntime(26487): at android.view.MotionEvent.getX(MotionEvent.java:1549)

E/AndroidRuntime(26487): at kieran.android.asteroids.GameUI.onTouchEvent(GameUI.java:665)

E/AndroidRuntime(26487): at android.view.View.dispatchTouchEvent(View.java:4616)

E/AndroidRuntime(26487): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)

E/AndroidRuntime(26487): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1291)

E/AndroidRuntime(26487): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)

E/AndroidRuntime(26487): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1291)

E/AndroidRuntime(26487): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)

E/AndroidRuntime(26487): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1291)

...这是调用它的代码。对我来说似乎不错,但也许蜂窝中有一个尚未修复的错误?上面日志中的行号665对应于float x = event.getX(id);行。它可能与我获取which变量的方式有关吗?但它在手机/2.3及更低版本上可以正常使用...int action = event.getAction();

int actionCode = action & MotionEvent.ACTION_MASK;

if(actionCode == MotionEvent.ACTION_POINTER_UP || action == MotionEvent.ACTION_UP) {

int which = action >> MotionEvent.ACTION_POINTER_ID_SHIFT;

int id = event.getPointerId(which);

float x = event.getX(id);

float y = event.getY(id);

任何帮助/想法都将不胜感激,因为我正努力使平板电脑用户也可以使用我的游戏。谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值