2012-12-26 2 views
10

수천 명의 다른 개발자와 마찬가지로 어느 시점에서 나는 수평 이미지 갤러리를 원했습니다. (제 경우에는 PageViewer의 페이지에서 원했습니다). 그 다음에 android.wiget라는 위젯이 있다고 들었습니다.이 상황을 위해 설계된 갤러리.가로 스크롤보기 : 정말 해결책입니까?

곧 Gallery가 사용되지 않으므로 다른 게시물에서 StackOverflow를 확인한 후 HorizontalScrollView를 사용하는 것이 좋습니다.

갤러리를 포기하고 HorizontalScrollView의 모든 것을 설정합니다. 우선 HorizontalScrollView는 하나의 루트 레이아웃 만 처리 할 수 ​​있다는 의미에서 실제로 위젯이 아닙니다. 좋아요, 그래서 저는 LinearLayout으로 루트 레이아웃을 구현했습니다. LinearLayout에 모든 스크롤 가능 요소를 추가하고 HorizontalScrollView에도 어댑터가 없음을 알아 두십시오. 문제는 없지만, 뷰를 순환하고, 하나씩 팽창시키고, AsyncTask를 캐스팅하여 그림을로드합니다. 4.03에서 잘 작동합니다. 그런 다음 2.2에서 실행하고 비동기식 작업이 너무 많아서 작동하지 않는 것으로 추측합니다. 따라서 충돌이 발생합니다. 30 개가 넘는 이미지가 있지만 모두를 통해 실행되는 단일 AsyncTask 일 수 있습니다. 이제 갤러리를 다시 고려하기 시작했습니다.

하지만 HorizontalListView가 있다고 들었습니다. 어댑터와 어댑터를 구현했습니다. 이제는 스크롤이 ViewPager의 페이지 내에서 너무 부드럽지 않고 여러 번 다시로드 한 후 멈 춥니 다 (ViewPager의 페이지 내에서)는 완벽하게 작동합니다. 나는 HorizontalListView를 수정하는 데 더 많은 시간을 할애해야하는지 아니면 다른 세 가지 구현을 다시해야하는지 궁금합니다. 어쩌면 나는 그 비난을 그렇게 진지하게 받아 들여서는 안된다.

제안 사항?

는 에필로그 : 결국

, 나는 다른 상황에 대한 HorizontalListView을 ViewPager 내부의 HorizontalScrollView 함께있어 이동과 사용하기로 결정했다. 이는 스크롤링 효율성과 번개 속도 때문이었고 HorizontalScrollView에서 onScroll을 재정 의하여 맞춤형 어댑터를 완성 할 수 있었으며 CountDownTimer와 함께 속도에 관계없이 주기적으로 이미지를 업데이트 할 수있었습니다. 속도가 느릴 때 속도를 사용하여 다운로드를 시작하는 것이 좋습니다. HorizontalListView 옹호자가 ViewPager 내부의 동작을 체크 아웃하면 최적화되고 개선 될 수 있다고 확신 할 수 있다면 좋을 것입니다. 더 많은 시간이 있다면 이것은 내가 선호하는 해결책이었을 것이다. 하지만 시간이 잠깐입니다.

+0

'HZListView '란 무엇입니까? 니가 쓴 게있어? –

+0

@ K-ballo'HorizontalListView'를 축약어로 아마도? –

+0

아니요 https://github.com/vieux/Android-Horizontal-ListView – user1847544

답변

3

HorizontalScrollView으로 작업하려는 경우 레이아웃을 보려면 here, 항목 선택 수신기를 처리하려면 here이 좋습니다. 그러나 당신이 본질적으로 하나의 거대한 컴퓨터를 만드는 것만 큼 HorizontalScrollView의 내부에 LinearLayout을 만들면 화면 밖에서도 모든 이미지가 지속되므로 메모리 문제가 발생할 수 있으므로이 경로는 마음에 들지 않습니다.

개인적으로는 HorizontalListView을 사용하는 것이 좋습니다 (here).

+0

제안 사항은 언제나 환영하지만, ViewPager 내에서 동작을 확인하십시오. – user1847544

관련 문제