簡單的一個ViewPager無限循環

package com.luc.a14844.day5viewpager;

import android.os.Handler;
import android.os.Message;
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;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private ImageView[] dian;
    private int index=0;
    private ViewPager mViewpager;
//從網上搞到的圖片
    private String[] url={"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 Handler mhandler=new Handler(){
                @Override
                    public void handleMessage(Message msg) {
                    if(index>4){
                       index=4;
                    }
                    mViewpager.setCurrentItem(index);
                    index++;
                    index=index%url.length;
                   send();
                }
            };
    private Thread ttt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        dian=new ImageView[5];
        dian[0]= (ImageView) findViewById(R.id.dian1);
        dian[1]= (ImageView) findViewById(R.id.dian2);
        dian[2]= (ImageView) findViewById(R.id.dian3);
        dian[3]= (ImageView) findViewById(R.id.dian4);
        dian[4]= (ImageView) findViewById(R.id.dian5);
        for(ImageView image:dian){
            image.setOnClickListener(this);
            image.setImageResource(R.drawable.xu);
        }
        dian[0].setImageResource(R.drawable.shi);
        send();
    }
//viewpager的基本功能
    private void initView() {
        mViewpager= (ViewPager) findViewById(R.id.viewpager);
        mViewpager.setAdapter(new IamgeAdapter());
        mViewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                for(ImageView image:dian){
                    image.setImageResource(R.drawable.xu);
                }
                dian[position].setImageResource(R.drawable.shi);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }
//點擊事件
    @Override
    public void onClick(View v) {
        int index1 = Integer.valueOf(v.getTag().toString());
        mViewpager.setCurrentItem(index1);
        index=index1+1;
        if(ttt!= null){
            ttt = null;
        }
        send();
    }
//線程發送
    private void send() {
        ttt = new Thread(){
            @Override
            public void run() {
                mhandler.sendEmptyMessageDelayed(index,2000);
            }
        };
        ttt.start();
    }
//適配器
    class IamgeAdapter extends PagerAdapter{

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

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

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            ImageView imageView = new ImageView(MainActivity.this);
            Glide.with(MainActivity.this)
                    .load(url[position])
                    .placeholder(R.drawable.xu)
                    .into(imageView);
            container.addView(imageView);
            return imageView;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }
    }
//爲了返回時不報錯
    @Override
    protected void onDestroy() {
        super.onDestroy();
        mhandler.removeCallbacksAndMessages(null);
    }
}

發佈了24 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章