package com.youkes.browser.utils; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Environment; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.security.MessageDigest; import java.util.ArrayList; public class ImageUtil { public static Bitmap getBitmap(String src) { try { URL url = new URL(src); HttpURLConnection connection = (HttpURLConnection) url .openConnection(); connection.setDoInput(true); connection.connect(); InputStream input = connection.getInputStream(); Bitmap myBitmap = BitmapFactory.decodeStream(input); return myBitmap; } catch (IOException e) { return null; } } public static Bitmap getBitmap2(String imagePath) { if (!(imagePath.length() > 5)) { return null; } File cache_file = new File(new File( Environment.getExternalStorageDirectory(), "xxxx"), "cachebitmap"); cache_file = new File(cache_file, getMD5(imagePath)); if (cache_file.exists()) { return BitmapFactory.decodeFile(getBitmapCache(imagePath)); } else { try { URL url = new URL(imagePath); HttpURLConnection conn = (HttpURLConnection) url .openConnection(); conn.setConnectTimeout(5000); if (conn.getResponseCode() == 200) { InputStream inStream = conn.getInputStream(); File file = new File(new File( Environment.getExternalStorageDirectory(), "xxxx"), "cachebitmap"); if (!file.exists()) { file.mkdirs(); } file = new File(file, getMD5(imagePath)); FileOutputStream out = new FileOutputStream(file); byte buff[] = new byte[1024]; int len = 0; while ((len = inStream.read(buff)) != -1) { out.write(buff, 0, len); } out.close(); inStream.close(); return BitmapFactory.decodeFile(getBitmapCache(imagePath)); } } catch (Exception e) { } } return null; } /** * * 获取缓存 * * @param url * * @return */ public static String getBitmapCache(String url) { File file = new File(new File( Environment.getExternalStorageDirectory(), "xxxx"), "cachebitmap"); file = new File(file, getMD5(url)); if (file.exists()) { return file.getAbsolutePath(); } return null; } // 加密为MD5 public static String getMD5(String content) { try { MessageDigest digest = MessageDigest.getInstance("MD5"); digest.update(content.getBytes()); return getHashString(digest); } catch (Exception e) { } return null; } private static String getHashString(MessageDigest digest) { StringBuilder builder = new StringBuilder(); for (byte b : digest.digest()) { builder.append(Integer.toHexString((b >> 4) & 0xf)); builder.append(Integer.toHexString(b & 0xf)); } return builder.toString().toLowerCase(); } public static ArrayList<String> processImageDisplayUrl( ArrayList<String> imgs) { ArrayList<String> ret=new ArrayList<String>(); for(int i=0;i<imgs.size();i++){ String img=imgs.get(i); if(img.indexOf("http")==0){ ret.add(img); }else{ ret.add("file://"+img); } } return ret; } }