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 |