ImageView实现图片的无限轮播 以及viewpager实现图片的无限轮播

---------------------ImageView实现图片的无限轮播--------------------------------

//获取控件
img = (ImageView) findViewById(R.id.img);
    //设置图片的方法
  
   String path ="http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=8&page=5、、、、路径";
   NetDataUtil.getData(path, this, new JsonCallBack() {
    @Override
    public void getJson(String json) {
        Gson gson = new Gson();
        DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);
        List<DataDataBean.DataBean> data = dataDataBean.getData();
             //存图片路径的集合
            List<String> list =new ArrayList<>();
for (int i=0;i<data.size();i++){ list.add(data.get(i).getImg()); } //设置图片 ImageLoader.getInstance().displayImage(list.get(0),img, ImageLoaderUtil.shape()); hh.sendEmptyMessageDelayed(0,3000); }});
Handler
Handler hh = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        if(msg.what==0){
            index++;
            ImageLoader.getInstance().displayImage(list.get(index%list.size()),img, ImageLoaderUtil.shape());
        hh.sendEmptyMessageDelayed(0,3000);
        }

    }
};
----------------------viewpager-------------------------------------------
//控件
     vp = (ViewPager) findViewById(R.id.vp);
    
   
String path ="http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=8&page=5";
NetDataUtil.getData(path, this, new JsonCallBack() {

    private List<DataDataBean.DataBean> data1;

    @Override
    public void getJson(String json) {
        Gson gson = new Gson();
        DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);
        data1 = dataDataBean.getData();
        //设置适配器
        ImgAdapter imga = new ImgAdapter(data1,MainActivity.this);
          vp.setAdapter(imga);
         vp.setCurrentItem(list.size()*100000);
        h2.sendEmptyMessageDelayed(1,2000);
    }
});
Handler
Handler h2 = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        if(msg.what==1){
            vp.setCurrentItem(vp.getCurrentItem()+1);
            h2.sendEmptyMessageDelayed(1,2000);
        }

    }
};
----------------适配器类--------------------

public class ImgAdapter extends PagerAdapter {
    List<DataDataBean.DataBean> list;
    Context cxt;

    public ImgAdapter(List<DataDataBean.DataBean> list, Context cxt) {
        this.list = list;
        this.cxt = cxt;
    }

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView imageView = new ImageView(cxt);
          imageView.setScaleType(ImageView.ScaleType.FIT_XY);

        ImageLoader.getInstance().displayImage(list.get(position%list.size()).getImg(),imageView, ImageLoaderUtil.shape());
        container.addView(imageView);
        return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值