zoukankan      html  css  js  c++  java
  • Android实现图片下载并保存SD卡

    一、首先获取图片 

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

     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

    喜欢我的就关注我

  • 相关阅读:
    composer npm bower 版本依赖符号说明
    FastAdmin 速极后台框架从 v1.0 到 v1.2 的数据库升级
    FastAdmin 也可以出书了
    FastAdmin 开发时用到的 Git 命令 (2020-09-26)
    FastAdmin用什么弹窗组件
    笔记:Linux 文件权限
    笔记:使用源代码在 Centos 7 安装 Git 2
    php gd 生成表格 图片
    easyui datagrid 清空
    mysql 去重
  • 原文地址:https://www.cnblogs.com/creazyda/p/9149361.html
Copyright © 2011-2022 走看看