2012-12-26 26 views
10

像成千上萬的其他開發人員一樣,我想要一個水平的圖像庫。 (在我的情況下,我想在頁面瀏覽器的頁面)。然後我聽說有一個名爲android.wiget.Gallery的小部件是專爲這種情況設計的。水平滾動視圖:它真的是一個解決方案嗎?

不久,我開始聽到Gallery已被棄用,並且檢查了StackOverflow,其他帖子之後提示Horizo​​ntalScrollView是要走的路。

我放棄了Gallery並在Horizo​​ntalScrollView中設置了所有內容。我首先注意到,Horizo​​ntalScrollView實際上不是一個小部件,它只能處理一個根佈局。好的,所以我將根佈局實現爲LinearLayout。在LinearLayout中添加我所有的可滾動條,並意識到Horizo​​ntalScrollView也沒有適配器。沒問題,我會循環瀏覽視圖,逐個渲染它們,然後使用AsyncTask來加載圖片。在4.03上正常工作。然後我在2.2上運行它,猜測是什麼,有太多的異步任務正在運行 - 所以它崩潰了。 也許只有一個AsyncTask可以運行,但有超過30個圖像。現在我開始再次考慮畫廊。

但後來我聽到有一個Horizo​​ntalListView。我實現了它,加上一個適配器。除了現在滾動不是很順利(在ViewPager的一個頁面內),並且在重新加載多次後(在ViewPager的一個頁面內)它會卡住。我想知道是否應該花更多時間修改Horizo​​ntalListView或重新訪問我的三個其他實現。也許我不應該如此認真對待這種棄用。

有什麼建議嗎?

結語:

最後,我決定去與留的Horizo​​ntalScrollView的內部ViewPager,並使用Horizo​​ntalListView的其他情形。這是由於滾動效率,閃電般快速,我終於可以通過在Horizo​​ntalScrollView中重寫onScroll來制定自定義適配器,並且與CountDownTimer結合定期更新一個範圍內的圖像,而不管速度如何。建議的另一個解決方案是在速度足夠慢時使用速度開始下載。如果Horizo​​ntalListView支持檢查它在ViewPager中的行爲,那將是非常好的,因爲我確信它可以被優化和改進。如果我有更多時間,這將是我的首選解決方案。但時間稍縱即逝..

+0

什麼是'HZListView'?你寫的東西? –

+0

@ K-ballo'Horizo​​ntalListView'也許是簡寫? –

+0

沒有它的https://github.com/vieux/Android-Horizo​​ntal-ListView – user1847544

回答

3

如果您仍然打算使用HorizontalScrollView,我建議您尋找看here爲佈局和here處理項目選擇偵聽器。但是我不喜歡這條路線,因爲你實際上只是在HorizontalScrollView內部製作了一個巨大的LinearLayout,這可能導致內存問題,因爲即使在屏幕外,所有圖像仍然存在。

我個人建議使用HorizontalListView找到here

+0

建議總是歡迎,但也請檢查其ViewPager內的行爲。 – user1847544