Scenario di touchevent Android e peculiare da gestire
-
31-10-2019 - |
Domanda
Ok, quindi nel creare un gioco nel mio tempo libero, sono stato completamente bloccato quando provo a codificare il seguente scenario:
Voglio catturare eventi di rubinetto (TouchEvent.ACTION_DOWN
), e poi a intervalli di 500 ms, voglio verificare se lo schermo è ancora premuto e ripetere la stessa azione, AD Infinitum.
Quindi, ho iniziato con:
switch (myTouchHandler.getAction()) {
case (TouchEvent.ACTION_DOWN):
case (TouchEvent.ACTION_MOVE):
if (inputIntervalTooSoon()) return true;
//do the magic i intend to do....
}
....
private boolean inputIntervalTooSoon() {
final long now = System.currentTimeMillis();
if ((now - lastTouchEventTime) < 500) return false;
lastTouchEventTime = now;
return true;
E questo produce l'effetto che aspetterà i 500 ms, ma non inizierà immediatamente a rilevare se il mio dito è ancora giù. Lo riprenderà di nuovo se muovo leggermente il dito e poi torno a dormiente.
Se non includo la funzione di intervallo, la mia azione spara costantemente. Qualsiasi idea su come implementare meglio questo sarebbe molto apprezzato.
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow