1. 程式人生 > >Android實現圖片下載並保存SD卡

Android實現圖片下載並保存SD卡

tex on() puts show sta exc method pat bit

一、首先獲取圖片

//第一種獲取圖片的方法

 1 String filePath = downloadUrl;
 2 //以下是取得圖片的方法
 3 取得的是InputStream,直接從InputStream生成bitmap 
 4 mBitmap = BitmapFactory.decodeStream(getImageStream(filePath));
 5 
 6 public InputStream getImageStream(String path) throws Exception{
 7     URL url = new URL(path);
 8     HttpURLConnection conn = (HttpURLConnection) url.openConnection();
9 conn.setConnectTimeout(5 * 1000); 10 conn.setRequestMethod("GET"); 11 if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){ 12 return conn.getInputStream(); 13 } 14 return null; 15 }

//第二種獲取圖片的方法

 1 String filePath = downloadUrl;
 2 //以下是取得圖片的方法
 3 取得的是byte數組, 從byte數組生成bitmap
4 byte[] data = getImage(filePath); 5 if(data!=null){ 6 mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 7 }else{ 8 Toast.makeText(MainActivity.this, "Image error!", Toast.LENGTH_SHORT).show(); 9 } 10 public byte[] getImage(String path) throws Exception{ 11 URL url = new
URL(path); 12 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 13 conn.setConnectTimeout(5 * 1000); 14 conn.setRequestMethod("GET"); 15 InputStream inStream = conn.getInputStream(); 16 if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){ 17 return readStream(inStream); 18 } 19 return null; 20 } 21 public static byte[] readStream(InputStream inStream) throws Exception{ 22 ByteArrayOutputStream outStream = new ByteArrayOutputStream(); 23 byte[] buffer = new byte[1024]; 24 int len = 0; 25 while( (len=inStream.read(buffer)) != -1){ 26 outStream.write(buffer, 0, len); 27 } 28 outStream.close(); 29 inStream.close(); 30 return outStream.toByteArray(); 31 }

二、保存圖片

 1 **
 2  * 保存bitmap到SD卡
 3  * @param bitmap
 4  */
 5 public void saveBitmapToSDCard(Bitmap bitmap) {
 6     FileOutputStream fos = null;
 7     try {
 8         fos = new FileOutputStream(picPath);//picPath為保存SD卡路徑
 9         if (fos != null) {
10             bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
11             fos.close();
12         }
13     } catch (Exception e) {
14         e.printStackTrace();
15     }
16 }

源碼下載地址:https://download.csdn.net/download/daxudada/10272805

喜歡我的就關註我

Android實現圖片下載並保存SD卡