Android-为什么应用触发触摸事件会死掉?

发布于 2016-11-22 08:27:02 字数 1306 浏览 1186 评论 1

我有以下这么一段代码,当我触摸的坐标在200,200这个矩形内的时候,就不执行后面的代码的,但是不知道为什么,如果我按照代码来做的话,整个程序都卡死不能动了.这是为什么呢?

最后复制上代码

public boolean onTouchEvent(MotionEvent ev)
{
int x = (int) ev.getX();
int y = (int) ev.getY();
if (dragImageView != null
&& dragPosition != AdapterView.INVALID_POSITION)
{
// int x = (int) ev.getX();
// int y = (int) ev.getY();

if (x < 200 && y < 200)
{
return super.onTouchEvent(ev);
}
switch (ev.getAction())
{
case MotionEvent.ACTION_MOVE:
if (!isCountXY)
{
xtox = x - mLastX;
ytoy = y - mLastY;
isCountXY = true;
}
onDrag(x, y);
if (!isMoving)
OnMove(x, y);
break;
case MotionEvent.ACTION_UP:
stopDrag();
onDrop(x, y);
break;
}
}
return super.onTouchEvent(ev);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

想挽留 2017-06-24 03:12:18

应该是应用本身卡死的,你这个似乎做一个拖动某个图标的动作。要注意onTouchEvent的返回值。如果是确定截获touch事件,应该返回True,否则返回false,不用返回super.OntouchEvent.可以参考android自带的Launcher2那个拖动的代码。另外,请参考这篇辅助知识@android触屏事件处理onInterceptTouchEvent的问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文