public Bitmap loadImage( final String imageName, final String imgUrl, final boolean isbusy, final ImageCallback callback) { Bitmap bitmap = null; if (imageCache.containsKey(imgUrl)) { SoftReference<Bitmap> softReference = imageCache.get(imgUrl); bitmap = softReference.get(); if (bitmap != null) { Log.i("m", "从内存获得图片成功。。"); callback.loadImage(bitmap, imgUrl); return bitmap; } } // if(!isbusy){ // 从本地获取图片 bitmap = getBitmapFromData(imageName, mContext); // System.out.println("从本地获取图片"); // } if (bitmap != null) { imageCache.put(imgUrl, new SoftReference<Bitmap>(bitmap)); Log.i("m", "从本地获得图片成功。。"); callback.loadImage(bitmap, imgUrl); return bitmap; } else { // 从网络获取图片 final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.obj != null) { synchronized (imageCache) { Map<String, Bitmap> bitmapMap = (Map) msg.obj; for (String str : bitmapMap.keySet()) { mbitmap = bitmapMap.get(str); url = str; imageCache.put(url, new SoftReference<Bitmap>(mbitmap)); } if (android.os.Environment.getExternalStorageState() .equals(android.os.Environment.MEDIA_MOUNTED)) { try { String imageName = url.substring(url.lastIndexOf("/") + 1, url.length()); if (!imageName.endsWith(".jpg") && !imageName.endsWith(".png")) { imageName += ".png"; } String mImagePath = ImageUtil.IMAGE_PATH + imageName; /*if (url.endsWith(".png")) { saveImagePng(mImagePath, mbitmap); } else if (url.endsWith(".jpg")) { saveImageJpeg(mImagePath, mbitmap); }*/ saveBitmapToData(imageName, mbitmap, mContext); // System.out.println("向SD卡获取图片"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } callback.loadImage(mbitmap, url); } } } }; getImageRunnable run = new getImageRunnable(imgUrl, handler, callback); ThreadPoolManager.getInstance().addTask(run); } return bitmap; }