Gesture Dedector-El hareketleri ile işlem

Android’ de el hareketiyle aşağı  yukarı kaydırma işlemlerine Gesture denilir. Örneğin ListView nesnesinin aşağı yukarı kaydırıldığında herhangi bir işlem yapılmasını istiyorsak GestureDedector’u kullanabiliriz.
Şimdi uygulamaya listview eklerek başlayın. Daha önceki konularda ayrıntılı olarak bu objeyi incelemiştik.
Daha sonra Activity dosyamızın kod bloğuna aşağıdaki kodu eklemeleyiz.

 

        listem.setOnTouchListener(new View.OnTouchListener() {

            public final static int FINGER_RELEASED = 0;
            public final static int FINGER_TOUCHED = 1;
            public final static int FINGER_DRAGGING = 2;
            public final static int FINGER_UNDEFINED = 3;

            private int fingerState = FINGER_RELEASED;


           
            public boolean onTouch(View view, MotionEvent motionEvent) {

                switch (motionEvent.getAction()) {

                    case MotionEvent.ACTION_DOWN:
                        if (fingerState == FINGER_RELEASED) fingerState = FINGER_TOUCHED;
                        else fingerState = FINGER_UNDEFINED;
                        break;

                    case MotionEvent.ACTION_UP:
                        if(fingerState != FINGER_DRAGGING) {
                            fingerState = FINGER_RELEASED;

                            // Your onClick codes

                        }
                        else if (fingerState == FINGER_DRAGGING) fingerState = FINGER_RELEASED;
                        else fingerState = FINGER_UNDEFINED;
                        //Dokunduğunuzda yapılacak işlem
                            
                       wv.setLayoutParams(vc);

                    case MotionEvent.ACTION_MOVE:
                        if (fingerState == FINGER_TOUCHED || fingerState == FINGER_DRAGGING) fingerState = FINGER_DRAGGING;
                        else fingerState = FINGER_UNDEFINED;
                        break;

                    default:
                        fingerState = FINGER_UNDEFINED;

                }

                return false;
            }
        });

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir