JavascriptProva

martedì 1 novembre 2016

Gesture detection in previsione della nuova applicazione

E ora vediamo come si costruisce un GestureListener.
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