android网络获取图片并保存在本地

获取网络上的图片有三步:

一、设置连接网络的权限和写入读取SD卡的权限。二、网络访问获得数据流。 三、在SD卡中创建文件夹将数据流转成图片格式存储。

注意:response.getEntity().getContent()方法,而此方法只能调用一次。否则会报错:java.lang.IllegalStateException: Content has been consumed。

manifest.xml

赋予权限,注意:在<application...>application>前添加

 <uses-permission android:name="android.permission.INTERNET"/>
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

MainActivity.java

获得网络图片的数据流

 HttpGet header = new HttpGet("你服务器的图片地址");
                 //自定义的Cookie(服务器返回)
                 //header.setHeader("Cookie", "key");
                 HttpResponse headerresponse = httpclient.execute(header); //
                // headerresponse.getEntity().getContent(); 只能用一次否则会报错Content has been consumed
                 InputStream headerin =
                 headerresponse.getEntity().getContent();// 服务器返回的数据
                 bitmap = BitmapFactory.decodeStream(headerin);
                 if (bitmap != null) {
                 saveBitmap(bitmap);// display image
                 }
                 headerin.close();

保存的位置:

    /**
         * 保存方法
         *
         * @throws IOException
         */
        public void saveBitmap(Bitmap bitmap) throws IOException {            //更改的名字
            String imageName="w"+".jpg";

            String headPath=android.os.Environment.getExternalStorageDirectory()+
                    "/"+"msg"+"/"+"head";

                File headDir=new File(headPath);
                if(!headDir.exists()){
                    headDir.mkdirs();
                }
                System.out.println(headPath+"\n"+headDir);
                FileOutputStream headFos=null;
                File headFile=null;
                try{
                    // 鐢熸垚鏂板浘
                    headFile=new File(headPath,imageName);
                    headFile.createNewFile();

                    headFos=new FileOutputStream(headFile);
                    bitmap.compress(CompressFormat.JPEG, 100, headFos);
                    headFos.flush();

                }catch(Exception e){
                    e.printStackTrace();
                }finally{
                    if(headFos!=null){
                        try {
                            headFos.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }

        }
时间: 2024-12-16 12:22:13

android网络获取图片并保存在本地的相关文章

Java从网络读取图片并保存至本地

http://blog.csdn.net/sabic/article/details/6564169 ************************************ package getUrlPic; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURL

获取图片并保存

获取某一个网站的图片信息需要用到requests模块,所以我们需要安装requests 安装 pip install requests # 直接安装 pip install -i https://pypi.doubanio.com/simple/ requests # 指定地址安装 测试是否安装成功 import requests # 回车不报错就算安装成功 response = requests.get("https://www.baidu.com") print(response.

android从网络获取图片

http://blog.csdn.net/wangjinyu501/article/details/8219317 http://www.cnblogs.com/JerryWang1991/archive/2012/03/09/2388312.html http://blog.csdn.net/liuhe688/article/details/6532519 http://blog.csdn.net/abc5382334/article/details/17097633 http://www.t

Android ListView从网络获取图片及文字显示

从网络获取图片以及文本来显示.事实上,一般是先获取Josn或sml数据,然后解释显示.我们先从网上获取xml,然后对其进行解析,最后显示在ListView上.具体步骤: 客户端发出请求,获取xml 客户端异步解析xml ListView将解析完的数据显示 一.Android客户端 (1)xml布局文件         mainxml,就是一个ListView. [java] view plaincopy <?xml version="1.0" encoding="utf

Android LazyList 从网络获取图片并缓存

原文地址   本文内容 环境 演示 LazyList 从网络获取图片并缓存 参考资料 本文是 Github 上的一个演示,通过网络获取歌手专辑的缩略图,并显示在 ListView 控件中.该演示具备将缩略图缓存到手机外存的功能,所以叫"Lazy",这样就不用每次都通过网络重新获取. 该演示仅仅是获得缩略图,但在另一篇文章中,作者根据这个 LazyList,做了一个相对完整的演示(包括歌曲名称.歌手名.时长.缩略图等信息),如图 3 所示. 环境 Windows 2008 R2 64 位

Android 通过网络获取图片的源码

将开发过程中经常用到的内容做个备份,如下的资料是关于Android 通过网络获取图片的的内容. package com.netimg; import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.view.View;import android.view.View.OnClickLis

基于Android4.0ListView从网络获取图片文字资源显示

平时的一些Android学习视频中,他们都是基于Android的去使用ListView,我看到都是会在UI线程中去访问网络获取数据,但是这在Android4.0之后是行不通的. 首先我们来理一下思绪: 我们需要从网络上下载一份xml数据,里面包含了需要显示的文字和图片路径.所以我们首先需要的就是先去下载数据,下载数据完成之后再在Adapter中显示图片的时候去下载图片,然后显示出来.这是基本的思路.但是做着做着会发现一些问题,比如,我们如何能保证数据下载完全,才去绑定适配器和数据他们.然后假如我

python爬取某个网站的图片并保存到本地

python爬取某个网站的图片并保存到本地 #coding:utf-8 import urllib import re import sys reload(sys) sys.setdefaultencoding('gb2312') #获取整个页面的数据 def getHtml (url): page = urllib.urlopen(url) html = page.read() return html #保存图片到本地 def getImg(html): reg = r'src="(.+?\.

使用URLConnection下载文件或图片并保存到本地

有时候需要从网络上面下载图片到本地进行保存,代码如下: package com.jointsky.jointframe.test; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; /** * 使用URLConnection下载文件或图片并保存到本地. * * @a