package com.example.list.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import com.example.list.R;
import java.util.Random;
public class HorizontalImageItemAdapter extends BaseAdapter implements View.OnClickListener {
public interface OnImageClickListener {
public void onImageClick(int resId);
}
private static class ViewHolder {
ImageView image;
Integer position;
}
private static final int[] THUMB_IMAGES = new int[] {
R.drawable.thumb_a, R.drawable.thumb_b, R.drawable.thumb_c, R.drawable.thumb_d,
R.drawable.thumb_e, R.drawable.thumb_f, R.drawable.thumb_g, R.drawable.thumb_h,
R.drawable.thumb_i, R.drawable.thumb_j, R.drawable.thumb_k, R.drawable.thumb_l,
R.drawable.thumb_m
};
private static final int[] IMAGES = new int[] {
R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, R.drawable.e,
R.drawable.f, R.drawable.g, R.drawable.h, R.drawable.i, R.drawable.j,
R.drawable.k, R.drawable.l, R.drawable.m
};
private LayoutInflater mInflater;
private Random mRandom;
private OnImageClickListener mListener;
public HorizontalImageItemAdapter(Context context, OnImageClickListener listener) {
mInflater = LayoutInflater.from(context);
mListener = listener;
mRandom = new Random();
}
@Override
public int getCount() {
return 150;
}
@Override
public Object getItem(int position) {
int imagePos = mRandom.nextInt(THUMB_IMAGES.length);
return imagePos;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.image_item, parent, false);
viewHolder = new ViewHolder();
viewHolder.image = (ImageView) convertView.findViewById(R.id.image);
viewHolder.position = (Integer) getItem(position);
convertView.setTag(viewHolder);
convertView.setOnClickListener(this);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
int pos = viewHolder.position;
viewHolder.image.setImageResource(THUMB_IMAGES[pos]);
return convertView;
}
@Override
public void onClick(View v) {
if (mListener != null) {
ViewHolder holder = (ViewHolder) v.getTag();
mListener.onImageClick(IMAGES[holder.position]);
}
}
}