package org.wheelmap.android.adapter; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ProgressBar; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.FailReason; import com.nostra13.universalimageloader.core.listener.ImageLoadingListener; import org.wheelmap.android.activity.PictureActivity; import org.wheelmap.android.online.R; import java.util.List; /** * Created by SMF on 17/03/14. */ public class HorizontalImageAdapter extends BaseAdapter implements android.widget.AdapterView.OnItemClickListener { private Activity context; private List plotsImages; private LayoutInflater l_Inflater; public HorizontalImageAdapter(Activity context, List plotsImages) { this.context = context; this.plotsImages = plotsImages; l_Inflater = LayoutInflater.from(context); } @Override public int getCount() { return plotsImages.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } public void clear() { plotsImages.clear(); notifyDataSetChanged(); } @Override public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder holder; if (convertView == null) { convertView = l_Inflater.inflate(R.layout.listview_item, null); holder = new ViewHolder(); holder.imageView = (ImageView) convertView.findViewById(R.id.iconHList); holder.progressBar = (ProgressBar) convertView.findViewById(R.id.progressbar_photo); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.progressBar.setVisibility(View.VISIBLE); ImageLoader.getInstance().displayImage((String) plotsImages.get(position), holder.imageView, new ImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { holder.progressBar.setVisibility(View.GONE); } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { holder.progressBar.setVisibility(View.GONE); } @Override public void onLoadingCancelled(String imageUri, View view) { holder.progressBar.setVisibility(View.GONE); } }); return convertView; } private static class ViewHolder { ImageView imageView; ProgressBar progressBar; } @Override public void onItemClick(android.widget.AdapterView<?> parent, View view, int position, long id) { String url = (String) plotsImages.get(position); Intent intent = new Intent(context, PictureActivity.class); intent.putExtra(PictureActivity.EXTRA_URL, url); context.startActivity(intent); } }