//预设一张图片 vh.img.setImageResource(R.mipmap.ic_launcher); //List集合中的图片地址 调取图片地址 final String picUrl = list.get(position).getPicUrl(); if(picUrl!=null){ //给控件设置一个tag值,tag值具有唯一性 vh.img.setTag(picUrl); //异步获取图片 MyTask.loadImage(picUrl, vh.img, new ImageCallBack() { @Override public void setSuccessImage(ImageView img, Bitmap bitmap) { if (img.getTag().toString().equals(picUrl)) { img.setImageBitmap(bitmap); } } }); }
public class MyTask { //异步获取数据 public static void loadImage(final String picUrl, final ImageView img,final ImageCallBack callBack){ new AsyncTask<Void,Void,Bitmap>(){ @Override protected Bitmap doInBackground(Void... params) { try { URL url=new URL(picUrl); HttpURLConnection connection=(HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); if(connection.getResponseCode()==200){ InputStream inputStream = connection.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); return bitmap; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); callBack.setSuccessImage(img,bitmap); } }.execute(); } }
public interface ImageCallBack { public void setSuccessImage(ImageView img, Bitmap bitmap); }