西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識 → 可循環(huán)顯示圖像的Android Gallery組件

可循環(huán)顯示圖像的Android Gallery組件

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:本站整理時間:2010/8/24 0:14:12字體大。A-A+

作者:佚名點擊:2798次評論:0次標簽: Android 循環(huán)

  • 類型:源碼相關(guān)大。23.6M語言:中文 評分:9.1
  • 標簽:
立即下載
3 頁 循環(huán)顯示圖像的原理
循環(huán)顯示圖像的原理

<!--[endif]-->

循環(huán)顯示有些類似于循環(huán)鏈表,最后一個結(jié)點的下一個結(jié)點又是第1個結(jié)點。循環(huán)顯示圖像也可以模擬這一點。

也許細心的讀者從上一節(jié)實現(xiàn)的ImageAdapter類中會發(fā)現(xiàn)些什么。對!就是getView方法中的position參數(shù)和getCount方法的關(guān)系。position參數(shù)的值是不可能超過getCount方法返回的值的,也就是說,position參數(shù)值的范圍是0至getCount() - 1。

如果這時Gallery組件正好顯示到最后一個圖像,position參數(shù)值正好為getCount() - 1。那么我們?nèi)绾卧僮孏allery顯示下一個圖像呢?也就是說讓position參數(shù)值再增1,對!將getCount()方法的返回值也增1。

那么這里還有一個問題,如果position參數(shù)值無限地增加,就意味著resIds數(shù)組要不斷地增大,這樣會大大消耗系統(tǒng)的資源。想到這,就需要解決兩個問題:既要position不斷地增加,又讓resIds數(shù)組中保存的圖像資源ID是有限的,該怎么做呢?對于getCount()方法非常好解決,可以讓getCount方法返回一個很大的數(shù),例如,Integer.MAX_VALUE。這時position參數(shù)值就可以隨著Gallery組件的圖像不斷向前移動而增大,F(xiàn)在resIds數(shù)組只有15個元素,如果position的值超過數(shù)組邊界,要想繼續(xù)循環(huán)取得數(shù)組中的元素(也就是說,當position的值是15時,取resIds數(shù)組的第0個元素,是16時取第1個元素),最簡單的方法就是取余,代碼如下:

resIds[position % resIds.length]

在本節(jié)對ImageAdapter類做了如下兩個改進:

1. 使getCount方法返回一個很大的值。建議返回Integer.MAX_VALUE。

2. 在getView方法中通過取余來循環(huán)取得resIds數(shù)組中的圖像資源ID。

通過上面兩點改進,可以使圖像列表在向右移動時會循環(huán)顯示圖像。當然,這種方法從本質(zhì)上說只是偽循環(huán),也就是說,如果真把圖像移動到getCount方法返回的值那里,那也就顯示到最后一個圖像的。不過在這里getCount方法返回的是Integer.MAX_VALUE,這個值超過了20億,除非有人真想把圖像移動到第20億的位置,否則Gallery組件看著就是一個循環(huán)顯示圖像的組件。

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)