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

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

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

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

作者:佚名點(diǎn)擊:2798次評(píng)論:0次標(biāo)簽: Android 循環(huán)

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

<!--[endif]-->

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

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

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

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

resIds[position % resIds.length]

在本節(jié)對(duì)ImageAdapter類做了如下兩個(gè)改進(jìn):

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

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

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

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

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

    熱門評(píng)論

    最新評(píng)論

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

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