和我的上一篇博客一样,只是这次我采用的是AsyncTask
/**
* Created by zhang on 2016/11/27.
*/
public class ImageLoader {
public void showImageByAsyncTask(ImageView imageView, String url) {
new NewsAsyncTask(imageView, url).execute(url);
}
private class NewsAsyncTask extends AsyncTask<String, Void, Bitmap> {
private ImageView mImageView;
private String mUrl;
public NewsAsyncTask(ImageView imageView, String url) {
mImageView = imageView;
mUrl = url;
}
@Override
protected Bitmap doInBackground(String... params) {
MediaMetadataRetriever media = new MediaMetadataRetriever();
media.setDataSource(params[0]);
Bitmap bitmap = media.getFrameAtTime(3000);
bitmap = ThumbnailUtils.extractThumbnail(bitmap, 100, 100);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
if (mImageView.getTag().equals(mUrl)) {
mImageView.setImageBitmap(bitmap);
}
}
}
}
然后在Adapter中调用改为下面这行代码就行了
new ImageLoader().showImageByAsyncTask(holder.iv_icon_video, url);