您的位置:首页 > 其它

ListView Adapter优化 实例

2013-04-25 10:35 896 查看

    private HashMap<String, SoftReference<Drawable>> imageCache;      public AsyncImageLoader() {          imageCache = new HashMap<String, SoftReference<Drawable>>();      }      public Drawable loadDrawable(final String imageUrl, final ImageCallback imageCallback) {          //从缓存中检测是否存在        if (imageCache.containsKey(imageUrl)) {              SoftReference<Drawable> softReference = imageCache.get(imageUrl);              Drawable drawable = softReference.get();              if (drawable != null) {                  return drawable;              }          }          final Handler handler = new Handler() {              @Override              public void handleMessage(Message message) {                  imageCallback.imageLoaded((Drawable) message.obj, imageUrl);              }          };          //缓存中没有则从服务器下载        new Thread() {              @Override              public void run() {                  Drawable drawable = loadImageFromUrl(imageUrl);                  imageCache.put(imageUrl, new SoftReference<Drawable>(drawable));                  Message message = handler.obtainMessage(0, drawable);                  handler.sendMessage(message);              }          }.start();          return null;      }      public static Drawable loadImageFromUrl(String url) {          Drawable drawable = null;        //根据url从服务器下载图片        return drawable;    }      public interface ImageCallback {          public void imageLoaded(Drawable imageDrawable, String imageUrl);      }  } 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ListView Adapter 优化