package com.qianfeng.gl4study.snssdk.tasks; /** * Created with IntelliJ IDEA. * I'm glad to share my knowledge with you all. * User:Gaolei * Date:2015/3/10 * Email:pdsfgl@live.com */ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.widget.ImageView; import com.qianfeng.gl4study.snssdk.utils.FileCache; import com.qianfeng.gl4study.snssdk.utils.HttpTool; import com.qianfeng.gl4study.snssdk.utils.ImageCache; import com.qianfeng.gl4study.snssdk.utils.Utils; /** * 通用的图片下载异步任务,通过方法覆盖,接受图片的ImageView */ public class ImageLoaderTask extends AsyncTask<String, Integer, byte[]> { private ImageView imageView; private int width; private String imgUrl; public ImageLoaderTask(int width,ImageView imageView) { this.imageView = imageView; this.width = width; } @Override protected byte[] doInBackground(String... params) { byte[] ret = new byte[0]; if (params != null && params.length > 0) { imgUrl = params[0]; ret = HttpTool.get(imgUrl); } return ret; } @Override protected void onPostExecute(byte[] bytes) { if (bytes != null) { Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); //更新内存缓存信息 FileCache.getInstance().putContent(imgUrl,bytes); ImageCache imageCache = ImageCache.getInstance(); imageCache.putImage(imgUrl,bitmap); if(imageView!=null) { Object tag = imageView.getTag(); if(tag!=null){ //检查下载地址是否属于当前ImageView if(tag instanceof String){ String sTag = (String) tag; if(sTag.equals(imgUrl)){ //当前下载地址和tag参数一致,即任务该ImageView应该显示该图片 Utils.setImageToView(width,imageView,bitmap); } } } } } } }