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小型计算器
// // ViewController.m // 计算器 //屏幕的宽和高 #define SCREEN_W self.view.frame.size.width #define SCREEN_ ...
- 你真的了解UIControl吗?
一:首先查看一下关于UIControl的定义 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIControl : UIView //控件默认是启用的YES.是否要禁用 ...
- 【代码笔记】iOS-淡出淡入效果
一,效果图. 二,工程图. 三,代码. ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIVie ...
- OC中的内存管理
一. 基本原理 1. 什么是内存管理 移动设备的内存极其有限,每个app所能占用的内存是有限制的 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间.比如回收一些不需 ...
- Runnable,Thread实现多线程以及Runnable的同步资源共享
(一) 实现多线程有两种方式 (1) 继承Thread类,重写run()方法,如以下例子 class MyThread extends Thread{ public void run(){ // } ...
- iOS 为视图添加抖动效果
抖动效果在开发中比较少用到,不过有时使用了确有个很好的装逼效果,用的时候就例如一些用户错误操作之类的 效果如下,不过gif看到的效果没实际的好看 上代码 - (void)shakeAnimationF ...
- JS获取浏览器名和版本信息
Navigator 对象包含有关浏览器的信息. Navigator 对象属性和方法: <html> <head> <title>JS完整获取浏览器信息</ti ...
- 1.9 基础知识——GP2.10 高级别的领导检查(Higher level management)
GP2.10 Review the activities,status,and results of XXX process with highter level management and res ...
- Winform读写App.config文件以及重启程序
//重启主程序 //System.Diagnostics.Process.Start(System.Reflection.Assembly.GetExecutingAssembly().Locatio ...
- Python基础之生成器
1.生成器简介 首先请确信,生成器就是一种迭代器.生成器拥有next方法并且行为与迭代器完全相同,这意味着生成器也可以用于Python的for循环中.另外,对于生成器的特殊语法支持使得编写一个生成器比 ...