viewpager輪播圖 自動輪播 圖片資源用的是網絡資源

先要找到控件

pager = view.findViewById(R.id.pager);
//給viewpager 賦圖片
public void MyPager(){
List<String> picUrl= new ArrayList<>();
    picUrl.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1513679323820&di=d33523977cd2b8c0e831513baa205965&imgtype=0&src=http%3A%2F%2Fc.hiphotos.baidu.com%2Fimage%2Fpic%2Fitem%2Fa686c9177f3e67092b94a19231c79f3df9dc55c3.jpg");
    picUrl.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1513679323820&di=9d535a4011922065fc36e1d0cb3790fa&imgtype=0&src=http%3A%2F%2Fb.hiphotos.baidu.com%2Fimage%2Fpic%2Fitem%2Fac4bd11373f082024ba9705241fbfbedab641ba7.jpg");
    picUrl.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1513679323820&di=7d77f15e8f8556eb72fee9b0962ef985&imgtype=0&src=http%3A%2F%2Ff.hiphotos.baidu.com%2Fimage%2Fpic%2Fitem%2Fc75c10385343fbf25fb0ff46ba7eca8065388f33.jpg");
//設置適配器
    MyPagerimageAdapter adapter = new MyPagerimageAdapter(getActivity(), picUrl);
   
    pager.setAdapter(adapter);
 //每過一秒鐘 設置一下
myHandler.sendEmptyMessageDelayed(0,1000);} 寫一個方法 獲取網絡圖片 並設置適配器 發送消息

下面是handler的代碼  首先是獲取當前滑動到哪張圖片 其次是讓這個圖片自增長 並傳給viewpager對象  每過一秒 發送一次

private Handler myHandler=new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        int index=pager.getCurrentItem();
        index++;
        pager.setCurrentItem(index);

        sendEmptyMessageDelayed(0,1000);

    }
};
最後是適配器的代碼  在適配器里加載的是配置imagerloder的代碼     注意刪除和添加的方法要自己重寫 
class MyPagerimageAdapter extends PagerAdapter {
    private  DisplayImageOptions options;
    private Context context;
    private List<String> picUrl;
    public MyPagerimageAdapter(Context context, List<String> picUrl) {
        this.picUrl = picUrl;
        this.context =context;
        options=new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用內存緩存
                .cacheOnDisk(false)//使用磁盤緩存
                .bitmapConfig(Bitmap.Config.RGB_565)//設置圖片色彩模式
                .imageScaleType(ImageScaleType.EXACTLY)//設置圖片的縮放模式
                .build();
    }

    @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);
        ImageLoader.getInstance().displayImage(picUrl.get(position%picUrl.size()),imageView,options);
        container.addView(imageView);

        return imageView;

    }
    //刪除的方法
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View)object);
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章