轮播适配器

package com.bawei.demo.adapter;


import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;


import com.bawei.demo.R;
import com.bawei.demo.bean.BannerBean;
import com.nostra13.universalimageloader.core.ImageLoader;


import java.util.List;


/**
 * 轮播适配器
 *
 * @author zhaoliang
 * @version 1.0
 * @create 2018/6/23
 */
public class BannerAdapter extends PagerAdapter {


    private Context context;
    private List<BannerBean.ItemBean> list;
    private TextView tvTitle;
    private TextView tvNum;
    private List<ImageView> points;


    public BannerAdapter(Context context, List<BannerBean.ItemBean> list, TextView tvTitle, TextView tvNum, List<ImageView> points) {
        this.context = context;
        this.list = list;
        this.tvTitle = tvTitle;
        this.tvNum = tvNum;
        this.points = points;
    }


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


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


    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        ImageView imageView = new ImageView(context);
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        BannerBean.ItemBean itemBean = list.get(position % list.size());
        tvTitle.setText(itemBean.getTitle());
        tvNum.setText(position % list.size() + "/" + list.size());
        changeColor(position % list.size());
        ImageLoader.getInstance().displayImage(itemBean.getThumbnail(), imageView);


        container.addView(imageView);
        return imageView;
    }


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


    /**
     * 改变圆点的颜色
     *
     * @param currentItem
     */
    private void changeColor(int currentItem) {
        for (int i = 0; i < list.size(); i++) {
            if (i == currentItem) {
                points.get(i).setImageResource(R.drawable.point_red);
            } else {
                points.get(i).setImageResource(R.drawable.point_gray);
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42535851/article/details/80794310