我正在使用Android onTouchEvent来注册触摸和相关的移动。然后我想沿着那条路径迭代一个精灵。
我需要存储手指描绘的路径以供日后使用。
问题在于手指从屏幕上抬起后,ArrayList(pArray)完全填充了X& ACTION_UP坐标的Y位置。
从Log我可以看到它正在添加当前的X&当手指移动时Y位置到Arraylist很好但是Arraylist被Arraylist.size()中的数据覆盖 - 1 ...
有人可以提出建议。
public boolean onTouchEvent(MotionEvent event) {
synchronized (mHeartbeat.getSurfaceHolder()) {
getXX = event.getX();
getYY = event.getY();
pathArr.setX(getXX);
pathArr.setY(getYY);
pArray.add(pathArr);
if (event.getAction() == MotionEvent.ACTION_DOWN) {
} else if(event.getAction() == MotionEvent.ACTION_MOVE) {
} else if(event.getAction() == MotionEvent.ACTION_UP) {
}
return true;
}
}
答案 0 :(得分:0)
这是因为您没有创建新的pathArr
变量,并且每次都向阵列添加相同的变量。它似乎也是一个实例字段。您需要将其更改为局部变量并为每个事件创建一个新变量。