//创建接口 在listview里的getview里实现加载图片
public interface ImageCallBack {
public void setSuccessImage(ImageView img, Bitmap bitmap);
}
//预设一张图片
holder.img.setImageResource(R.mipmap.ic_launcher);//进行判断在地址不为null的情况下
if(lists.get(position).getPicUrl()!=null){
//给控件设置一个tag值,tag值具有唯一性
holder.img.setTag(lists.get(position).getPicUrl());
//异步获取图片
ImageHeler.loadImage(lists.get(position).getPicUrl(), holder.img, new ImageCallBack() {
@Override
public void setSuccessImage(ImageView img, Bitmap bitmap) {
//判断tag值
if(img.getTag().toString().equals(lists.get(position).getPicUrl())){
img.setImageBitmap(bitmap);
}
}
/**
* 加载图片
* @param picPath 图片的路径
* @param img 要展示的控件
*/
public static void loadImage(final String picPath, final ImageView img,final ImageCallBack callBack){
new AsyncTask<Void,Void,Bitmap>(){
@Override
protected Bitmap doInBackground(Void... params) {
try {
URL url=new URL(picPath);
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
if(connection.getResponseCode()==200){
InputStream stream=connection.getInputStream();
Bitmap bitmap=BitmapFactory.decodeStream(stream);
return bitmap;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
// if(img.getTag().toString().equals(picPath)){
// //显示图片
// img.setImageBitmap(bitmap);
// }
//调用接口-回传照片
callBack.setSuccessImage(img,bitmap);
}
}.execute();
}