Android 下载网络图片保存到本地
通过网络地址获取网络图片,点击下载将图片显示出来,然后点击图片将图片保存到本地。
- <!-- 访问网络的权限 -->
- <uses-permission android:name="android.permission.INTERNET" />
- <!-- 文件读取的权限 -->
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- <!-- 向SD卡中创建或者删除的权限。 -->
- <uses-permission android:name="andorid.permission.MONUN_UNMOUNT_FILESYSTEMS"/>
- package com.xjw.test;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.os.Environment;
- import android.os.Handler;
- import android.os.Message;
- import android.app.Activity;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.Toast;
- public class MainActivity extends Activity implements OnClickListener{
- Button content;
- ImageView image;
- Bitmap bitmap;
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- content=(Button)findViewById(R.id.content);
- image=(ImageView)findViewById(R.id.image);
- content.setOnClickListener(this);;
- image.setOnClickListener(this);;
- }
- /**
- * 获取网络图片
- * @param imageurl 图片网络地址
- * @return Bitmap 返回位图
- */
- public Bitmap GetImageInputStream(String imageurl){
- URL url;
- HttpURLConnection connection=null;
- Bitmap bitmap=null;
- try {
- url = new URL(imageurl);
- connection=(HttpURLConnection)url.openConnection();
- connection.setConnectTimeout(6000); //超时设置
- connection.setDoInput(true);
- connection.setUseCaches(false); //设置不使用缓存
- InputStream inputStream=connection.getInputStream();
- bitmap=BitmapFactory.decodeStream(inputStream);
- inputStream.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return bitmap;
- }
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.content:
- //加入网络图片地址
- new Task().execute("http://pic.4j4j.cn/upload/pic/20130617/55695c3c95.jpg");
- break;
- case R.id.image:
- //点击图片后将图片保存到SD卡跟目录下的Test文件夹内
- SavaImage(bitmap, Environment.getExternalStorageDirectory().getPath()+"/Test");
- Toast.makeText(getBaseContext(), "图片保存", Toast.LENGTH_SHORT).show();
- break;
- default:
- break;
- }
- }
- Handler handler=new Handler(){
- public void handleMessage(android.os.Message msg) {
- if(msg.what==0x123){
- image.setImageBitmap(bitmap);
- }
- };
- };
- /**
- * 异步线程下载图片
- *
- */
- class Task extends AsyncTask<String, Integer, Void>{
- protected Void doInBackground(String... params) {
- bitmap=GetImageInputStream((String)params[0]);
- return null;
- }
- protected void onPostExecute(Void result) {
- super.onPostExecute(result);
- Message message=new Message();
- message.what=0x123;
- handler.sendMessage(message);
- }
- }
- /**
- * 保存位图到本地
- * @param bitmap
- * @param path 本地路径
- * @return void
- */
- public void SavaImage(Bitmap bitmap, String path){
- File file=new File(path);
- FileOutputStream fileOutputStream=null;
- //文件夹不存在,则创建它
- if(!file.exists()){
- file.mkdir();
- }
- try {
- fileOutputStream=new FileOutputStream(path+"/"+System.currentTimeMillis()+".png");
- bitmap.compress(Bitmap.CompressFormat.JPEG, 100,fileOutputStream);
- fileOutputStream.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
Android 下载网络图片保存到本地的更多相关文章
- Retrofit 下载网络图片 保存到本地
private void downImage(String imagePath) { try { CommonV2Api.downloadFile(mContext, imagePath, new I ...
- C#抓取网络图片保存到本地
C#抓取网络图片保存到本地 System.Net.WebClient myWebClient = new System.Net.WebClient(); //将头像保存到服务器 string virP ...
- C# 中从网络上下载文件保存到本地文件
下面是C#中常用的从Internet上下载文件保存到本地的一些方法,没有太多的技巧. 1.通过 WebClient 类下载文件 WebClient webClient = new WebClien ...
- JAVA 通过url下载图片保存到本地
//java 通过url下载图片保存到本地 public static void download(String urlString, int i) throws Exception { // 构造U ...
- android下载网络图片并缓存
异步下载网络图片,并提供是否缓存至内存或外部文件的功能 异步加载类AsyncImageLoader public void downloadImage(final String url, final ...
- h5+的Downloader下载网络图片缓存到本地的案例
之前展示图片都是通过<img src="网络图片地址"> , 每次都请求服务器, 加载比较慢;如何做到显示图片的时候先从本地获取,没有则联网下载,缓存到本地;下次直接从 ...
- android 下载网络图片并缓存
异步下载网络图片,并提供是否缓存至内存或外部文件的功能 异步加载类AsyncImageLoader public void downloadImage(final String url, final ...
- java后台中处理图片辅助类汇总(上传图片到服务器,从服务器下载图片保存到本地,缩放图片,copy图片,往图片添加水印图片或者文字,生成二维码,删除图片等)
最近工作中处理小程序宝箱活动,需要java画海报,所以把这块都快百度遍了,记录一下处理的方法,百度博客上面也有不少坑! 获取本地图片路径: String bgPath = Thread.current ...
- android下载网络图片,设置宽高,等比缩放
使用Picasso组件去下载图片会发现图片宽高会变形不受等比缩放控制,即使设置了图片的 scaleType,可能是对Picasso的api没有用对, Picasso.with(this.activit ...
随机推荐
- yum源的配置(centos6.5)
# cd /etc/yum.repos.d/ # mv CentOS-Base.repo CentOS-Base.repo.bak # wget http://mirrors.163.com/.hel ...
- Java解析Soap XML
package com.jstrd.tipstock.webservice.jt.base; import java.io.ByteArrayInputStream; import java.util ...
- Java笔试题(一)
一. 选择题(共50题,每题2分,共100分.多选题选不全或选错都不得分.) 7. 以下说法错误的是()/*这个我感觉是全对,谁知道哪个错啦,讲解下,非常感谢*/A) super.方法()可以调用父类 ...
- RapidFloatingActionButton框架正式出炉
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4474748.html RapidFloatingActionB ...
- iOS 自定义的对象类型的解档和归档
自定义的对象的解档和归档 如果想对自己自定义的类进行解档和归档的话 必须遵循一个协议:NSCoding Student.h 文件 #import <Foundation/Foundation.h ...
- runtime之玩转成员变量
前言: 不铺垫那么多,单刀直入吧:runtime是一个C和汇编写的动态库,就像是一个小小的系统,将OC和C紧密关联在一次,这个系统主要做两件事情. 1,封装C语言的结构体和函数,让开发者在运行时创建, ...
- winform ListView应用之分组、重绘图标、网格线 (c# .net winform)
最近在winform应用中需要用到可分组的数据列表功能,DataGridView默认没有提供分组的功能,而OutlookGrid(http://www.codeproject.com/KB/grid/ ...
- js和jquery获取父级元素、子级元素、兄弟元素的方法
最近工作中总遇到取各种父啊子啊兄弟姐妹啊,每次都得查,这次整理个全乎的~ [js的获取方式] function dom(){ var a = document.getElementByIdx ...
- Cross-Origin Resource Sharing协议介绍
传统的Ajax请求只能获取在同一个域名下面的资源,但是HTML5打破了这个限制,允许Ajax发起跨域的请求.浏览器是可以发起跨域请求的,比如你可以外链一个外域的图片或者脚本.但是Javascript脚 ...
- 通过mdf ldf文件还原数据库
新建查询,执行如下语句: EXEC sp_attach_db @dbname = 'xxx', /*数据库名称*/ @filename1 = 'D:\数据库备份\预发布\201611241045 测试 ...