2013-09-14 5 views
0

Я хочу повернуть мой объект, когда я PRESS_DOWN кнопка и прекратить вращаться, когда я PRESS_UP.
Я попытался сделать это с помощью OnTouchListener, но, похоже, нет способа уклониться от этой кнопки.
Например, я нажимаю кнопку 1-го раза, и появляется событие 1-го касания, поднятое с ACTION_DOWN, но тогда, если я буду держать палец не двигающимся, ничего не произойдет (больше никаких событий). Или, если я переведу его очень быстро, будет разная скорость поднятия на сенсорном событии ACTION_MOVE. Для моей задачи неприемлема разная скорость, которая зависит от скорости движения пальца. Поэтому я решил запустить таймер (который вращается с фиксированной скоростью), когда ACTION_DOWN поднят и до отменить TimerTask, когда ACTION_UP поднят, он работает хорошо, как и мне. Но я думаю, что это не лучшее решение или даже самое худшее. Пожалуйста, дайте мне советы о других возможных решениях.Android некоторые действия при нажатии кнопки

+0

Почему вы не используете анимацию для Android, чтобы повернуть свой объект? Довольно легко начать и завершить вращение нажатием кнопки. – Naddy

ответ

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 столько раз, сколько хотите. Но я не знаю, удовлетворяет ли это решение вашим требованиям, или нет.

Смежные вопросы