您的位置:首页 > 移动开发

【安卓】安卓App开发思路 一步一个脚印(五)多点触碰与单点触碰的冲突处理思路

2016-10-23 18:41 453 查看

多点触碰与单点触碰的冲突处理思路

与我思路大致相同的博文 http://blog.csdn.net/q610098308/article/details/51324244 原理可以看他的博文



float startX = 0;
int state = 0;//防止手指移动反复更新 只在手指按下和滑动时 启动
float endX;
int mode = 0;
@Override
public boolean onTouch(View arg0, MotionEvent event) {
//为了防止多点的触碰影响到单点的滑动 因此在多点触碰条件中处理
switch (event.getAction() & event.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:           // 第一个手指按下事件
mode =0;
startX = event.getX();
state = 1;
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_POINTER_UP:        // 手指放开事件
mode = 0;
endX = event.getX();
float endY = event.getY();
state = 0;
//TODO something

endX = 0;//回归0
break;

case MotionEvent.ACTION_MOVE:
if(mode == 0)// 是一个手指拖动
{
if (state == 1) {
endX = event.getX();
float changeXDistance = (float)((endX - startX) / 1.3);//计算误差
//两点坐标的距离绝对值
if (Math.abs(changeXDistance) > 100) {

//TODO something
startX = endX;
state=0;
}
}
}else if (mode ==1) // 两个手指滑动
{

}
break;
case MotionEvent.ACTION_POINTER_DOWN: // 第二个手指按下事件
mode = 1;
break;
}
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐