【发布时间】:2015-02-23 03:38:49
【问题描述】:
在我的 onTouchEvent() 方法中,我想执行一个不断重复的动作,直到我将手指从屏幕上移开。这是我的代码:
public void onTouchEvent(MotionEvent event) {
synchronized (this) {
Matrix matrix = new Matrix();
float x = event.getX();
if (x >= screenWidth / 2) {
rotate += 10;
} else {
rotate -= 10;
}
matrix.postRotate(rotate, square.getWidth() / 2, square.getHeight() / 2);
position.set(matrix);
position.postTranslate(xPos, yPos);
}
return true;
}
但问题是,如果我按住手指不移动,动作只会执行一次。我尝试了各种解决方案,包括
boolean actionUpFlag = false;
if (event.getAction() == MotionEvent.ACTION_DOWN) {
actionUpFlag = true;
} else if (event.getAction() == MotionEvent.ACTION_UP) {
actionUpFlag = false;
}
while (actionUpFlag) {
//the block of code above
}
只有当事件是 MotionEvent.ACTION_MOVE 时才执行动作,并在 onTouchEvent() 结束时返回 false,所有这些都不成功。谁能告诉我错误是什么?
MotionEvent.ACTION_MOVE 尝试的代码块:
if (event.getAction() == MotionEvent.ACTION_MOVE) {
//block of code above
}
【问题讨论】: