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 ...
随机推荐
- 有效解决 iOS The document “(null)” requires Xcode 8.0 or later.
下载了一个 xocde8beta版本 运行之后 结果 在xcode7.3上再运行 就报这句错误 以下链接 是非常有效的解决办法 不信你试试 [链接]Thisversiondoesnotsu ...
- iOS学习19之OC类的扩展
为一个类扩展功能:1.子类化:2.修改源代码:3.定义协议:4.Category:类目 1.Category 1> Category的作用 Category:也叫分类,类目,是为没有源代码的类扩 ...
- Bootstrap分页插件--Bootstrap Paginator
开源中国有一篇介绍的很详细,链接:https://my.oschina.net/shunshun/blog/204587 使用这个插件和使用其他Bootstrap内置的插件一样,需要引入如下文件: & ...
- Java中定义Map常量,List常量
一般的方式的使用静态代码块.比如: public final static Map map = new HashMap(); static { map.put("key1", &q ...
- php设计模式 工厂、单例、注册树模式
Source Code Pro字体 easyphp 命名空间:隔离类和函数,php5.3以后 //test5.php<?php namespace Test5;//命名空间必须是程序脚本的第一 ...
- 基于微软平台IIS/ASP.NET开发的大型网站有哪些呢?
首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...
- LB 简单比较 – F5、NetScaler、LVS、Nginx、Haproxy
LB 简单比较 – F5.NetScaler.LVS.Nginx.Haproxy 负载均衡技术是构建大型网站必不可少的架构策略之一.它的目的是,把用户的请求分发到多台后端的设备上,用以均衡服务器的负载 ...
- css控制标题长度超出部分显示省略号
width: 50px; overflow:hidden;white-space:nowrap; text-overflow:ellipsis; 设置或检索是否使用一个省略标记(...)标示对象内文本 ...
- 2014.1.23 Discuz论坛迁移+VPS配置手记
虽说这也不是我第一次转移这个论坛了,但毕竟还是第一次自己配置VPS,写点东西记一下 一:关于VPS的配置 1.用TeamViewer连接服务器 这个VPS的IDC自己带有一个远程控制的页面,用浏览器打 ...
- Cross-Origin Resource Sharing协议介绍
传统的Ajax请求只能获取在同一个域名下面的资源,但是HTML5打破了这个限制,允许Ajax发起跨域的请求.浏览器是可以发起跨域请求的,比如你可以外链一个外域的图片或者脚本.但是Javascript脚 ...