1 package com.aib.soft; 2 3 import java.io.BufferedOutputStream; 4 import java.io.File; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.net.HttpURLConnection; 9 import java.net.URL; 10 import android.graphics.Bitmap; 11 import android.graphics.BitmapFactory; 12 import android.util.Log; 13 14 public class Util { 15 16 /* 17 * 根据url从网络中获取一张图片 18 * 19 */ 20 public static Bitmap getHttpBitmap(String url) { 21 22 URL myFileURL; 23 24 Bitmap bitmap = null; 25 26 try { 27 28 myFileURL = new URL(url); 29 30 // 获得连接 31 32 HttpURLConnection conn = (HttpURLConnection) myFileURL 33 .openConnection(); 34 35 // 设置超时时间为6000毫秒,conn.setConnectionTiem(0);表示没有时间限制 36 37 conn.setConnectTimeout(60000); 38 39 // 连接设置获得数据流 40 41 conn.setDoInput(true); 42 43 // 不使用缓存 44 45 conn.setUseCaches(false); 46 47 // 这句可有可无,没有影响 48 49 // conn.connect(); 50 51 // 得到数据流 52 53 InputStream is = conn.getInputStream(); 54 55 // 解析得到图片 56 57 bitmap = BitmapFactory.decodeStream(is); 58 59 // 关闭数据流 60 61 is.close(); 62 63 } catch (Exception e) { 64 65 e.printStackTrace(); 66 67 } 68 69 return bitmap; 70 71 } 72 73 /** 74 * Save Bitmap to a file.保存图片到SD卡。 75 * 76 * @param bitmap 77 * @param file 78 * @return error message if the saving is failed. null if the saving is 79 * successful. 80 * @throws IOException 81 */ 82 public static void saveBitmapToFile(Bitmap bitmap, String _file)throws IOException { 83 BufferedOutputStream os = null; 84 try { 85 // Log.e("aib", "保存图片开始"); 86 File file = new File(_file); 87 // String _filePath_file.replace(File.separatorChar + 88 // file.getName(), ""); 89 int end = _file.lastIndexOf(File.separator); 90 String _filePath = _file.substring(0, end); 91 File filePath = new File(_filePath); 92 if (!filePath.exists()) { 93 filePath.mkdirs(); 94 } 95 // Log.e("aib", "已创建目录"); 96 file.createNewFile(); 97 // Log.e("aib", "createNewFile()"); 98 os = new BufferedOutputStream(new FileOutputStream(file)); 99 // Log.e("aib", "new BufferedOutputStream"); 100 bitmap.compress(Bitmap.CompressFormat.PNG, 100, os); 101 // Log.e("aib", "保存图片结束"); 102 } finally { 103 if (os != null) { 104 try { 105 os.close(); 106 } catch (IOException e) { 107 Log.e("aib", e.getMessage(), e); 108 } 109 } 110 } 111 } 112 }