Voglio far fling
funzionare il rilevamento dei gesti nella mia applicazione Android.
Quello che ho è un GridLayout
che contiene 9 ImageView
s. La fonte può essere trovata qui: Grid Layout di Romain Guys .
Quel file che prendo proviene dall'applicazione Photostream di Romain Guy ed è stato solo leggermente adattato.
Per la semplice situazione del clic, devo solo impostare il valore onClickListener
per ogni ImageView
che aggiungo come principale activity
che implementa View.OnClickListener
. Sembra infinitamente più complicato implementare qualcosa che riconosce a fling
. Presumo che sia perché potrebbe estendersi views
?
Se la mia attività viene implementata
OnGestureListener
, non so come impostarla come listener di gesti perGrid
o leImage
viste che aggiungo.public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ...
Se la mia attività viene implementata,
OnTouchListener
non ho alcunonFling
metodo peroverride
(ha due eventi come parametri che mi consentono di determinare se il fling era degno di nota).public class SelectFilterActivity extends Activity implements View.OnClickListener, OnTouchListener { ...
Se creo un'abitudine
View
, comeGestureImageView
quella estesaImageView
, non so come dire all'attività che sifling
è verificato dalla vista. In ogni caso, ho provato questo e i metodi non sono stati chiamati quando ho toccato lo schermo.
Ho davvero solo bisogno di un esempio concreto di questo lavoro attraverso le viste. Cosa, quando e come devo allegarlo listener
? Devo essere in grado di rilevare anche i singoli clic.
// Gesture detection
mGestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
int dx = (int) (e2.getX() - e1.getX());
// don't accept the fling if it's too short
// as it may conflict with a button push
if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.absvelocityY)) {
if (velocityX > 0) {
moveRight();
} else {
moveLeft();
}
return true;
} else {
return false;
}
}
});
È possibile posizionare una vista trasparente sulla parte superiore dello schermo per catturare le avventure?
Se scelgo di non inflate
visualizzare le visualizzazioni di immagini di figlio da XML, posso passare il GestureDetector
parametro come costruttore a una nuova sottoclasse di ImageView
quella che creo?
Questa è l'attività molto semplice per cui sto cercando di far funzionare il fling
rilevamento: SelectFilterActivity (adattato da photostream) .
Ho esaminato queste fonti:
Finora nulla ha funzionato per me e speravo in alcuni suggerimenti.