1. 程式人生 > >ViewPager循環滾動

ViewPager循環滾動

str let nbsp override 上下文 post handler nts span

一.先寫個適配器

 1 public class MyPagerAdapter extends PagerAdapter {
 2     /**
 3      * 上下文
 4      */
 5     private Context context;
 6     /**
 7      * 傳入的數據
 8      */
 9     private String[] datas;
10 
11     public MyPagerAdapter(Context context, String[] datas) {
12         this.context = context;
13
this.datas = datas; 14 } 15 16 @Override 17 public int getCount() { 18 //此處返回最大數 19 return Integer.MAX_VALUE; 20 } 21 22 @Override 23 public boolean isViewFromObject(View view, Object object) { 24 return view == object; 25 } 26 27 @Override
28 public Object instantiateItem(ViewGroup container, int position) { 29 //position會隨著時間不斷的增大 所以這裏取position與上datas.length的模 30 int i = position % datas.length; 31 //SmartImageView是github上的一個開源圖片加載框架 32 SmartImageView smartImageView = new SmartImageView(context); 33 smartImageView.setScaleType(ImageView.ScaleType.FIT_XY);
34 smartImageView.setImageUrl(datas[i], null); 35 container.addView(smartImageView); 36 37 return smartImageView; 38 } 39 40 @Override 41 public void destroyItem(ViewGroup container, int position, Object object) { 42 container.removeView((View) object); 43 } 44 }

依賴開源框架

 compile com.github.snowdream.android:smartimageview:0.0.2

技術分享

接下來是activity中的代碼了

1 private ViewPager viewPager;
2 private MyPagerAdapter pagerAdapter;
3 private Handler handler = new Handler();
 1 /**
 2      * view pager輪播任務類
 3      */
 4     class BannerTask implements Runnable {
 5         public void start() {
 6             //postDelayed方法的第一個參數就是實現一個Runnable
 7             //因為當前類已經實現了Runnable接口所以這裏傳入this,每隔5秒跟新一次
 8             handler.postDelayed(this, 5000);
 9         }
10 
11         @Override
12         public void run() {
13             //獲取當前item
14             int currentItem = viewPager.getCurrentItem();
15             //當前item加一,展示下一個item
16             currentItem++;
17             viewPager.setCurrentItem(currentItem);
18             handler.postDelayed(this, 5000);
19         }
20     }
1 //設置適配器
2 viewPager.setAdapter(pagerAdapter);
3 //創建輪播任務對象
4 BannerTask task = new BannerTask();
5 //開始輪播
6 task.start();

不懂的地方請留言

ViewPager循環滾動