이번에 시간이 좀 남아서 수정을 좀 해봤습니다.
워낙 고리짝 시절 소스라서...ㅡㅡ;;;
AndroidX 적용하고 compileSdkVersion 30, buildToolsVersion "30.0.3" 으로 맞춰서 올립니다.
https://github.com/YoungHoonZo/AutoScrollViewPager
아래 내용은 처음에 작성 했던 글이다.
아래 소스말고 github에 있는 소스 참조 바랍니다.
----------------------------------------------------------------------------------------------------------
이번에 프로젝트를 하면서 이미지를 무한으로 돌려야 하는 요구사항이 발생하여 이것저것...여기저기 소스 받아 보고 분석 해보면서
두가지의 스크롤 방법이 있다는걸 알았다...나중에라도 또 써먹을일이 있을을거 같아 남긴다...
요구사항
첫번째 : 이미지 3~4장을 자동으로 스크롤링 시킬것.
두번째 : 이미지가 마지막에 왔을때 앞으로 이동되는 것이 아니라 마지막에서 자연스럽게 다음 이미지가 있는거 처럼 처음 이미지를 보여줄것(무한 스크롤).
세번째 : 이미지를 탭했을때 해당 이미지의 상세 화면을 보여줄것.
네번째 : 이미지가 자동 스크롤이 되지만 사용자가 수동으로 스크롤을 할수 있어야함.
이렇게 4가지의 요구사항이 있어서 처음엔 ViewFlipper로 구현을 하려고 했었지만, 문제가 발생을 했다.
ViewFlipper로 자동 스크롤도 되고 해당 이미지를 탭했을때 해당 이미지의 상세 페이지로도 넘어 갈수 있었지만,
터치에서 문제가 됬다. 사용자가 수동으로 스크롤을 할수 없었다. 그래서 StackOverFlow나 국내 안사, 기타 등등 커뮤니티를 전전하면서
해당 문제를 해결 할수 있는 방법을 찾아봤지만 방법을 못찾았다. 그래서 다시 찾았다. 이번엔 ViewFlipper가 아니라
ViewPager로 찾아 봤다...있다...있어...
무한 스크롤이 구현될수 있는 방법은 두가지다
첫번째.
1,2,3,4 페이지가 있을때 마지막인 4번째 페이지에서 1번째 페이지로 점프를 해서 첫페이지부터 다시 스크롤을 하는 방법.
두번째
1,2,3,4 페이지가 있을때 마지막인 4번째 페이지에서 다음페이지가 있는거 처럼 1페이지를 자연스럽게 다음페이지로 보여주는 방법.
그래서 난 두가지의 소스를 찾았다
1.자동스크롤을 시켜주는 샘플
2.마지막 페이지에서 자연스럽게 1번째 페이지를 보여주는 샘플
두 샘플을 가지고 믹스를 해서 위 요구사항 4개를 만족하는 기능을 구현할수 있었다.
그리고 요구사항에 있는 마지막 페이지에서 첫 페이지를 자연스럽게 다음 페이지가 있는거처럼 보여주는 샘플 외에도,
추가로 마지막 페이지에서 앞으로 점프를 해서 첫페이지 부터 다시 보여주는 샘플도 구할수가 있었다.
사실 ViewPager의 Adapter만 바꿔주면 된다.
원본 링크:
자동 스크롤이 가능한 ViewPager
https://github.com/Trinea/android-auto-scroll-view-pager
마지막 페이지에서 자연스럽게 다음페이지가 있는거 처럼 첫 페이지를 보여주는 샘플
https://github.com/antonyt/InfiniteViewPager
마지막 페이지에서 첫페이지로 점프해서 첫페이지부터 다시 보여주는 샘플
https://github.com/manishkpr/AndroidViewPagerGallery/tree/master/ViewpagerImageGallery
첨부파일은 믹스 위에 샘플을 믹스한 소스이다.
AutoScrollViewPager의 옵션중에 페이지 넘어가는 속도 조절 가능 하고 마지막 페이지에서 계속 스크롤을 할건지 여부를 선택 가능 하고 등 관련 옵션이 몇게 있으니 보면 될거 같다...