ViewPager實現輪播圖
Android系統中有一個viewpager的控制元件,這個控制元件是用來實現多頁面的切換的效果。經常和fragment聯合使用,這就是我們經常看到的APP中的主介面的樣子。但是ViewPager不只能夠適配Fragment,還可有其他很多用處。比如實現輪播圖,就是幾張圖片左右切換。
1.在xml佈局檔案中加入一個viewpager控制元件,如下圖:(可以像其他控制元件一樣,有各種各樣的屬性,從而實現各種不同的效果)

注意引入的包名
2.新建一個類,繼承自PagerAdapter。這個類是介面卡類,用來將資料,佈局等資訊載入到ViewPager中去。我的子類命名為ImageViewpagerAdapter。如下圖重寫對應的方法。

這幾個方法必須重寫,否則會出錯
常量ArrayList<StoryBean> ll。這是一個實體類的集合。一般在輪播圖中這個集合中放著圖片的資源物件,或者對應的引用啊,也可能是一個url指向網上的某一張圖片。在這裡,我的StoryBean中有一個變數就是圖片的URL,還有對這張圖片的簡單描述,名為title的字串。
方法getCount()返回一個int值,這個值就是viewpager中的輪播圖的數量,這個數量不宜太大,一般是3~5張即可,否則會影響使用的流暢度。在上圖中,我直接返回的是5,是因為我的圖片數量是5張。一般情況下是返回ll.size(),就是這個實體類集合的長度。
方法instantiateItem(ViewGroup container, final int position)返回一個Object物件。這個返回的Object指的是View或者ViewGroup的子類,就是返回檢視中可見的物件。container是一個ViewGroup的物件,可以將最後的物件add到container中,再返回這個container。position指的是Viewpager中的第幾個物件,在輪播圖中就是第幾張圖片。具體程式碼如下:

其中載入圖片是使用ImageLoader,不做詳細解釋
先宣告一個View的佈局檔案,這個就是最後在Viewpager中每一個頁面中樣式效果。可以按照自己的想法隨意設定。其中我的佈局中只有一個ImageView和一個TextView。最後兩行程式碼就是將這個View加入到container中,最後返回這個container。在使用ViewPager控制元件時,最主要的程式碼都在這個方法中。
最後一個方法就是用來防止記憶體溢位的,用來合理使用記憶體的,程式碼如下:

3.當實現了這個介面卡類之後就很簡單了,在Activity中,實現以下程式碼就能使用了:

ii就是實體類的集合
4.通常的應用中輪播圖是可以自己切換的,這個很容易實現。重新開闢一個執行緒,在這個執行緒中每隔多長時間就傳送一個message給主執行緒,主執行緒中呼叫viewpager的setCurrentItem方法對圖片進行切換就行,不過其中還是有一些細節需要注意。