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

需求定制 需求定制 主题:1050 回复:2283

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

想挽留 发布于 2016-11-22 字数 1385 浏览 1023 回复 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);
}

发布评论

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

支持 Markdown 语法,需要帮助?

评论(1

想挽留 2017-06-24 1 楼

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