Android按下按钮时的一些动作

时间:2013-09-14 17:23:36

标签: java android

我想在 PRESS_DOWN 按钮时旋转我的对象,并在 PRESS_UP 时停止旋转。
我尝试用 OnTouchListener 来做,但似乎没有办法让按钮仍被按下。
例如我第一次触摸按钮,第一次触摸事件是用 ACTION_DOWN 引发的,但是如果我保持手指不动,则不会发生任何事情(不再发生事件)。或者如果我将它移动得非常快,那么在触摸事件ACTION_MOVE上会有不同的提升速度。取决于手指速度移动的不同速度对我的任务来说是不可接受的。因此,当 ACTION_DOWN 被提升时,我决定启动计时器(以固定速度旋转),并且当提出ACTION_UP 时取消TimerTask,它运行良好,就像我需要的那样。但我认为这不是最好的解决方案,甚至不是最坏的解决方案。请给我一些其他可能解决方案的建议。

2 个答案:

答案 0 :(得分:1)

您使用计时器的解决方案很好,并且是您应该的。 如果您正在运行动画,则不能依赖UI事件,您必须有一个单独的线程或计时器来定期更新。

答案 1 :(得分:1)

使用计时器是一个好方法。据我所知,我认为使用简单的if-else可以更有效地解决您的问题。例如,

boolean state = true;
if(state)
{
 // do the code for ACTION_DOWN
}
else
{
 // do the code for ACTION_UP
state = true;
}

给这个if语句循环,多次你想要。但我不知道,这个解决方案是否符合您的要求。