和我的上一篇博客一样,只是这次我采用的是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);