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

    喜欢我的就关注我

  • 相关阅读:
    关于博客园创始人的心路历程,感触很深!
    Django中的ORM相关操作:F查询,Q查询,事物,ORM执行原生SQL
    在Django中运行脚本文件以及打印出SQL语句。
    Django中的跨表查询,多表查询。
    Django中的ORM介绍,字段以及字段的参数。
    9.2安全的 Web API 与 Web API 2.2 个人帐户
    9.1WebApi的身份验证和授权
    3.1创建项目
    2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API
    2.3属性在 ASP.NET Web API 2 路由
  • 原文地址:https://www.cnblogs.com/creazyda/p/9149361.html
Copyright © 2011-2022 走看看