Vediamo dove posso recuperare la sintassi...
Quello che mi interessa è la classe GestureDetector.
Che costruttore ha la classe GestureDetector?
GestureDetector(Context context, GestureDetector.OnGestureListener listener)Quindi si costruisce così:
private GestureDetector gestureDetector; ........ gestureDetector = new GestureDetector(this, new GestureDetector.OnGestureListener(){ @Override public boolean onDown(MotionEvent e) { return false; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean onSingleTapUp(MotionEvent e) { return false; } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { return false; } @Override public void onLongPress(MotionEvent e) { } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; } });Adesso che ho istanziato GestureDetector, che faccio?
Vediamo se funziona, e come funziona.
Se do delle conseguenze a un gesto, risponderà?
Proviamo
@Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { System.out.println("ONSCROLL"); return false; }Ecco, risolto:
public class MainActivity extends AppCompatActivity { private ScrollView scrollView; private GestureDetector gestureDetector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gestureDetector = new GestureDetector(this, new GestureDetector.OnGestureListener(){ @Override public boolean onDown(MotionEvent e) { return false; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean onSingleTapUp(MotionEvent e) { return false; } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { return false; } @Override public void onLongPress(MotionEvent e) { } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { System.out.println("ONFLING"); scrollView.scrollBy(0,100); return true; } }); scrollView=(ScrollView)findViewById(R.id.scrollView); scrollView.setOnTouchListener(new View.OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { if(gestureDetector.onTouchEvent(event)) return gestureDetector.onTouchEvent(event); switch(event.getAction()){ case MotionEvent.ACTION_DOWN: System.out.println("DOWN"); break; case MotionEvent.ACTION_MOVE: System.out.println("MOVE"); break; case MotionEvent.ACTION_UP: System.out.println("UP"); break; } return true; } }); } }
Nessun commento:
Posta un commento