package net.coding.program.maopao.banner; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import net.coding.program.R; import net.coding.program.common.ImageLoadTool; import net.coding.program.common.htmltext.URLSpanNoUnderline; import net.coding.program.model.BannerObject; import net.coding.program.third.salvage.RecyclingPagerAdapter; import java.util.List; /** * Created by chenchao on 15/7/30. * 广告 Fragment,用于左右滑动 */ public class BannerAdapter extends RecyclingPagerAdapter { private Context context; private List<BannerObject> imageIdList; private ImageLoadTool imageLoadTool; private int size; public BannerAdapter(Context context, List<BannerObject> imageIdList, ImageLoadTool imageLoadTool) { this.context = context; this.imageIdList = imageIdList; this.size = imageIdList.size(); this.imageLoadTool = imageLoadTool; } @Override public int getCount() { return Integer.MAX_VALUE; } public int translatePosition(int position) { return position % size; } @Override public View getView(int position, View view, ViewGroup container) { ViewHolder holder; if (view == null) { holder = new ViewHolder(); view = LayoutInflater.from(context).inflate(R.layout.fragment_banner_item, null); holder.imageView = (ImageView) view.findViewById(R.id.image); holder.imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { BannerObject bannerObject = (BannerObject) v.getTag(); URLSpanNoUnderline.openActivityByUri(context, bannerObject.getLink(), false); } }); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } BannerObject data = imageIdList.get(translatePosition(position)); String imageUrl = data.getImage(); imageLoadTool.loadImage(holder.imageView, imageUrl, ImageLoadTool.bannerOptions); holder.imageView.setTag(data); return view; } public int getStartPos() { return Integer.MAX_VALUE / 2 - Integer.MAX_VALUE / 2 % imageIdList.size(); } private static class ViewHolder { ImageView imageView; } }