Android开发之实现图片下载并保存SD卡
白羽 2018-06-27 来源 :网络 阅读 997 评论 0

摘要:本文将带你了解Android开发之实现图片下载并保存SD卡,希望本文对大家学Android有所帮助。


一、首先获取图片 

//第一种获取图片的方法

 

 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 }

 


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程