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