无限轮播图的小案例

---------------Main--------------
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RadioGroup;

import com.example.com.month.Adapter.ImageAdapter;
import com.example.com.month.R;

import java.util.ArrayList;

public class Fragment03 extends Fragment {
    private int i=0;
    private ViewPager viewpager;
    //图片地址
    private String url1 = "http://img03.store.sogou.com/app/a/10010016/cfcba894e555937349610feb534dc72c";
    private String url2 = "http://img02.store.sogou.com/app/a/10010016/5654ecf05c472d486d767d9ce5740fa7";
    private String url3 = "http://img1.touxiang.cn/uploads/20120509/09-014623_68.jpg";
    private String url4 = "http://www.touxiang.cn/uploads/20120518/18-092103_594.jpg";
    private String url5 = "http://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word=%E5%A4%B4%E5%83%8F%20%E4%BA%BA%E7%89%A9%E5%BD%A2%E8%B1%A1&hs=0&pn=8&spn=0&di=107725448270&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=&ie=utf-8&oe=utf-8&in=3354&cl=2&lm=-1%2C&st=&cs=2210271221%2C1691292149&os=2482046208%2C4028573434&simid=4168641054%2C870988522&adpicid=0&lpn=0&ln=2000&fr=ala&fmq=1378374347070_R&fm=&ic=0&s=0%2C&se=&sme=&tab=&face=&ist=&jit=&statnum=head&cg=head&bdtype=0&oriquery=%E5%A4%B4%E5%83%8F%E5%A4%A7%E5%85%A8&objurl=http%3A%2F%2Ff.hiphotos.baidu.com%2Fbaike%2Fpic%2Fitem%2Fa2cc7cd98d1001e94ca42745b80e7bec55e797db.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fkwthj_z%26e3Bkwt17_z%26e3Bv54AzdH3Ff7ketjoAzdH3Fcb8lm00AzdH3F8d8bm9na_z%26e3Bip4%3Fu6%3Dwsw11tg&gsm=0";
    //图片地址集合
    private ArrayList<String> list;
    //Handler----------1
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.what == 0){
                if (viewpager.getCurrentItem()!=i){
                    i =viewpager.getCurrentItem();
                    viewpager.setCurrentItem(i);
                    handler.sendEmptyMessageDelayed(0,2000);
                }else {
                    i++;
                    viewpager.setCurrentItem(i);
                    handler.sendEmptyMessageDelayed(0,2000);
                }
            }
        }
    };
    private RadioGroup radiogroup;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment03, container, false);

        viewpager = view.findViewById(R.id.viewpager);
        radiogroup = view.findViewById(R.id.group);
        //--------------------------------------------------
        list = new ArrayList<String>();
        list.add(url1);
        list.add(url2);
        list.add(url3);
        list.add(url4);
        list.add(url5);
        ImageAdapter imageAdapter = new ImageAdapter(getActivity(),list);
        viewpager.setAdapter(imageAdapter);
        //轮播最大限度
        viewpager.setCurrentItem(list.size()*10000);
        //得到当前下标
        i = viewpager.getCurrentItem();
        handler.sendEmptyMessageDelayed(0,2000);
        //-------------------------------------------------------------------
        viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                switch (position%list.size()){
                    case 0:
                        radiogroup.check(R.id.brn1);
                        break;
                    case 1:
                        radiogroup.check(R.id.brn2);
                        break;
                    case 2:
                        radiogroup.check(R.id.brn3);
                        break;
                    case 3:
                        radiogroup.check(R.id.brn4);
                        break;
                    case 4:
                        radiogroup.check(R.id.brn5);
                        break;
                    default:
                        break;
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        return view;
    }
}

------------适配器--------------
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;


public class ImageAdapter extends PagerAdapter {

    private Context context;
    private List<String> list;

    public ImageAdapter(Context context, List<String> list) {
        this.context = context;
        this.list = list;
    }

    @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(context);
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        ImageLoader.getInstance().displayImage(list.get(position%list.size()),imageView);
        container.addView(imageView);
        return imageView;
    }

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

猜你喜欢

转载自blog.csdn.net/e_d_i_e/article/details/79103055