首先,制作自己的适配器来扩展gridView元素。在您的情况下,适配器将是AndroidImageSlider元素。
我在我的案例中所做的示例:
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private int iw, ih;
private String tag = "**Template wallpapers**";
private Activity myActivity;
private ImageLoader imageLoader = null;
public ImageAdapter(Activity activity, Context c) {
myActivity = activity;
mContext = c;
iw = commonClass.iwidth;
ih = commonClass.iheight;
imageLoader = ImageLoader.getInstance();
}
@Override
public int getCount() {
return MainActivity_GridView.mThumbIds.size();
}
@Override
public String getItem(int position) {
return MainActivity_GridView.mThumbIds.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
static class ViewHolder {
ImageView image;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if (convertView == null) {
LayoutInflater inflater = myActivity.getLayoutInflater();
row = inflater.inflate(R.layout.row_grid, parent, false);
holder = new ViewHolder();
holder.image = (ImageView) row.findViewById(R.id.image);
holder.image.getLayoutParams().width = iw;
holder.image.getLayoutParams().height = ih;
holder.image.setScaleType(ImageView.ScaleType.CENTER_CROP);
holder.image.setPadding(0, 0, 0, 0);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
if(MainActivity_GridView.mThumbIds.get(position).matches("\\d+")){
String imageUri = "drawable://" + MainActivity_GridView.mThumbIds.get(position);
ImageAware imageAware = new ImageViewAware(holder.image, false);
imageLoader.displayImage(imageUri, imageAware);
}else{
String imageUri = MainActivity_GridView.mThumbIds.get(position);
ImageAware imageAware = new ImageViewAware(holder.image, false);
imageLoader.displayImage(imageUri, imageAware);
}
return row;
}
}
然后,只需聆听gridView的点击:
GridView gv = (GridView) findViewById(R.id.gridView);
ImageAdapter imAdapter = new ImageAdapter(this, context);
imAdapter.notifyDataSetChanged();
gv.invalidateViews();
gv.setAdapter(imAdapter);
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// item has been clicked
// you got the ID - so use that info to do what you want ^
}
});