• ViewPager循环滚动


    一.先写个适配器

     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();

    不懂的地方请留言

  • 相关阅读:
    Sentinel-1雷达数据可以免费下载
    影像下载
    遥感影像下载地址
    ERS卫星
    alos 数据下载
    RMSE、RMS、标准差
    Landsat8数据不同波段组合的用途
    资源下载
    短视频录制的一个例子,拥有美颜滤镜、人脸贴纸功能。
    an iOS demo to demonstrate how to decorate face like faceu
  • 原文地址:https://www.cnblogs.com/hejiaoshou/p/7465085.html
Copyright © 2020-2023  润新知