相信大家都看到過手機上循環播放的廣告吧,這就用到我們的自定義控件了,看下圖
一、原理簡介
1.在佈局文件中用v4包下的ViewPager設置一個佈局
2.在activity中找到該佈局文件的ViewPager對象
3.設置ViewPager的數據(數據適配器)
4.開啓子線程,動態改變ViewPager當前頁的數據
5.設置ViewPager改變的監聽器,監聽ViewPager的改變,並且更新界面顯示
二、具體實現
1.數據適配器
①getCount();
設置ViewPager最大容量,即最多可盛放多少個item
②instantiateItem(ViewGroup view,int position)
預加載的item
在ViewPager中會在當前顯示界面的左右兩側各預加載一個item
③destoryItem(ViewGroup container,int position,Object object)
銷燬的item
當item處在預加載位置和當前位置之外即銷燬item,觸發此事件
2.線程動態改變數據
在Android中更改界面的顯示只能在主線程中實現,在子線程中可通過runOnUiThread()方法更新主
線程數據,其原理也是通過handler消息機制實現的
3.onPageChangeListener監聽器
ViewPager中一旦有數據發生改變即觸發此監聽事件
它有三個字方法
onPageScolled
當item滾動完畢後
onPageSelected
當item變爲當前頁時,在此方法中可設置改變後的數據,保持數據顯示的一致
onPageScollStateChanged
當item狀態發生改變時
4.假數據
要顯示的數據是一定的,但是怎麼實現無限動態循環滾動呢?那就給viewPager設置最大item數量足
夠大,讓要顯示的數據在這些item中循環加載,即可實現這種效果
三、小結
1.這就是所謂的自定義控件中的組合控件,把一些Android中已有的控件組裝起來,生成新的控件
2.所謂自定義控件都是自己定義的,只是懂幾種控件的代碼是不夠的,重要的是做控件的這種思想,
有了自定義控件的思想,那麼做自己喜歡效果的控件還是比較容易的
寫完博客,怎麼感覺一點都想不起來了呢。。