import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
public class ImageDetailAdapter extends BaseAdapter {
// Context object
private Context context = null;
// All uris of images and videos
private String[] picIds = null;
// Asyncly processing the show of media.
private Handler handler = new Handler();
/**
* Constructor.
*
* @param context
* @param urls
*/
public ImageDetailAdapter(Context context, String urls) {
this.context = context;
this.picIds = urls.split("~");
}
@Override
public int getCount() {
if (picIds == null) {
return 0;
}
return this.picIds.length;
}
@Override
public Object getItem(int position) {
return this.picIds[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
ImageView img = new ImageView(this.context);
img.setImageResource(R.drawable.pic_default);
img.setScaleType(ImageView.ScaleType.CENTER);
new ImageLoadTask(img, picIds[position]).execute();
return img;
} else {
return convertView;
}
}
class ImageLoadTask extends AsyncTask<Void, Void, Void> {
private ImageView image;
private String flag;
Bitmap bitmap;
public ImageLoadTask(ImageView image,String flag) {
this.image = image;
this.flag = flag;
}
@Override
protected Void doInBackground(Void... params) {
bitmap = Util.getBitmap(flag);
publishProgress();
return null;
}
public void onProgressUpdate(Void... voids) {
if (isCancelled())
return;
image.setImageBitmap(bitmap);
}
}
}