package com.banking.xc.utils; import java.util.List; import android.content.res.TypedArray; import android.view.View; import android.view.ViewGroup; import android.widget.Gallery; import skytv_com.banking.enjoymovie.R; import com.banking.xc.utils.adapter.circulation.CirculationSimpleImageProcessor; public class CirculationGalleryAdapter extends MySimpleAdapter { private List<?> beanList; public CirculationGalleryAdapter(MyActivity myActivity, List<?> beanList, int itemId, String[] from, int[] to) { super(myActivity, beanList, itemId, from, to); setViewBinder(new SimpleSubViewBinder(new CirculationSimpleImageProcessor())); this.beanList = beanList; TypedArray a = myActivity.obtainStyledAttributes(R.styleable.gallery_bg); a.recycle(); } @Override public int getCount() { if (getActualCount() <= 3) { return getActualCount(); } else { return Integer.MAX_VALUE;// 欺骗总数 } } /** * 真实数量 */ public int getActualCount() { return (null == beanList ? 0 : beanList.size()); } /** * 真实位置 */ public int toActualPosition(int position) { return position % getActualCount(); } @Override public View getView(int position, View convertView, ViewGroup parent) { if(Log.D){ Log.d("----", "CirculationGalleryAdapter position-->> " + position); } return super.getView(toActualPosition(position), convertView, parent); } @Override public Object getItem(int position) { if (null == beanList || beanList.size() < 1) { return null; } else { return beanList.get(toActualPosition(position)); } } public void init(Gallery gallery) { int mediant = Math.abs(Integer.MAX_VALUE / 2); //int select = mediant - (mediant % getActualCount()); gallery.setSelection(mediant); } }