ViewPager网络加载图片并无限轮播实现

import android.os.Handler;
import android.os.Message;
import android.provider.ContactsContract;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.bumptech.glide.Glide;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private ViewPager vv;
    private MyAdapter adapter;
    private  String[] images = {"http://l2.51fanli.net//tuan//images//1//5806eac956808.jpg",
            "http://l2.51fanli.net//tuan//images//b//580991bb30560.jpg",
            "http://l0.51fanli.net//tuan//images//b//58115f2593dc3.jpg",
            "http://l2.51fanli.net//tuan//images//0//57923840b054d.jpg",
            "http://l2.51fanli.net//tuan//images//e//58101e11ab164.jpg"
    };
    private ImageView[]  points;
    private   int  index=0;
    private Handler  han = new Handler(){
        @Override
        public void handleMessage(Message msg) {
      vv.setCurrentItem(index);
            index++;
            index=index%images.length;
            send();
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vv = (ViewPager)findViewById(R.id.vv);
        adapter = new MyAdapter();
        vv.setAdapter(adapter);
        points = new ImageView[5];
        points[0] = (ImageView)findViewById(R.id.v1);
        points[1] = (ImageView)findViewById(R.id.v2);
        points[2] = (ImageView)findViewById(R.id.v3);
        points[3] = (ImageView)findViewById(R.id.v4);
        points[4] = (ImageView)findViewById(R.id.v5);
        for (ImageView  s: points) {
            s.setOnClickListener(this);
        }
      updatePoint(index);
        send();
        vv.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
  updatePoint(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }
    private void updatePoint(int position) {
        //先把所有点初始化原来的样式
        for(ImageView image:points){
            image.setImageResource(R.drawable.control_unfocus);
        }
        points[position].setImageResource(R.drawable.control_focus);
    }
    public void send(){
        new Thread(){
            @Override
            public void run() {
                han.sendEmptyMessageDelayed(index,2000);
            }
        }.start();
    }
    @Override
    public void onClick(View v) {
han.removeCallbacksAndMessages(null);
       int num = Integer.valueOf(v.getTag().toString());
        vv.setCurrentItem(num,false);
        index = num+1;
        send();
    }

    class MyAdapter  extends PagerAdapter{

        @Override
        public int getCount() {
            return images.length;
        }

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



        @Override
        public Object instantiateItem(ViewGroup container, int position) {
          ImageView  im = new ImageView(MainActivity.this);
            Glide.with(MainActivity.this).load(images[position]).into(im);
            container.addView(im);
                return  im;
        }

        @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、付费专栏及课程。

余额充值