안녕하세요!


안드로이드 프로그램을 공부하면서 이런기능이 없나 하고 찾다 찾다.


찾긴했는데, 에러도 잘 나고,, 그래서 한번 시험삼아 만들어보았습니다.


이런 기능을 뭐라고 하는지 키워드를 모르겠네요 ~_~



기능은 갤러리뷰 처럼 좌우에 있는 View를 HorizontalScrollView를 이용하여 한칸씩 움직여 가는 기능입니다.


옆으로 간다 그래서 HFling 이라고 만들어놓고 쓰고 있습니다.


아직 버그가 있고요, 아주 단순한 기능만 하고 있지만, 저처럼 처음에 고생하시는 분들을 위해서 업로드 해봅니다. :D



테스트는 에뮬레이터랑 제 gals 에서 했고요, 아는 버그를 제외하고는 잘 동작하는것 같습니다 ^^


min sdk는 1.6 이클립스를 IDE로 사용했습니다.



소스를 간단하게 설명드릴게요.


파일은 두개로 나눠져 있습니다.


HFling extends HorizontalScrollView

HFlingGestureListener extends SimpleOnGestureListener


HorizontalScrollView에 LinearLayout 추가하고, 그 안에 View들을 잡아넣고 스크롤 합니다, 시작 X 축을 기준으로 정렬 한다! 는 느낌으로 만들었고요 Fling 이벤트 계산등을 대신 해주는 Listener를 사용했습니다.


Click 이벤트를 Observer 형태로 받기위해 Observable 클레스를 따라 했습니다 ^^;


외부에서 사용할 인터페이스는 다음과 같습니다.

addChildView(View v) : 해당 View를 등록

ScrollToIndex(int index) : index에 해당하는 View로 이동

clearChild() : View 다 삭제

setObserver(Observer o) : Click 이벤트 받을 Observer 등록


main.java에 사용 예제를 만들어놓았습니다. 필요하신분께 도움이 되셨으면 합니다 :D


알고있는 버그 : x축 값과 x가속도 둘로 화면을 이동하는데, 둘다 겹쳐서 화면이 두개 넘어가는 버그!


감사합니다.