ViewFlipper 사용 시 View 전환 이외에 또 다른 기능을 추가하고 싶을 때는

Flipping animation이 끝나는 시점 등에 해당 기능을 추가하면 된다.

 

http://stackoverflow.com/questions/3813108/listener-for-viewflipper-widget-flipping-events

 

위의 경우는 Animation을 코드로 삽입한 경우이고..

xml로 설정하고 함수가 호출될때만 해당 anim xml일이 호출되는 경우라면 다음과 같이 ViewFlipper의 터치 이벤트를 핸들하면 된다.

 

mViewFlipper.setOnTouchListener( new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    mPrePosX = (int) event.getX();
                }

                if (event.getAction() == MotionEvent.ACTION_UP) {
                    int nTouchPosX = (int) event.getX();

                    if (nTouchPosX < mPrePosX) {
                        slideToNext();
                    } else if (nTouchPosX > mPrePosX) {
                        slideToPrev();
                    }

                    mPrePosX = nTouchPosX;
                }

                return true;
            }
        });

 

위의 slideToNext() 함수 내부에서는 mViewFlipper.SetInAnimation / SetOutAnimation / showNext 를 호출하고 그 외에 할 일들을 추가하면 될 것이다.

반대로 slideToPrev() 함수는 위와 다 똑같지만 마지막에 showNext 대신 showPrevious를 호출하면 끝.

mPrePosX 는 좌로 슬라이드 했는지 우로 슬라이드 했는지를 판단하기 위함이므로 그대로 사용해도 무방함. (좌: prev, 우: next)

'Android' 카테고리의 다른 글

에뮬레이터 관련 정보  (0) 2012.08.13
화면에 사용된 View가 많을 때 한번에 리스너 등록하기  (0) 2012.08.07
색상 필터  (2) 2012.07.11
Android 메모리 릭 피하기 번역  (0) 2012.06.12
Android code snippets  (0) 2011.05.11
Posted by 독뽀
,