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/Android网络消息推送的实现两种方法
移动时代,用户为王,而每个APP拥有的活跃用户量(Active Users),决定了其价值. 消息推送成为了不可或缺的活跃唤起工具. 目前消息推送有如下两种途径: 1.iOS传统方式: 通过Apple ...
- Nmap源码分析(脚本引擎)
Nmap提供了强大的脚本引擎(NSE),以支持通过Lua编程来扩展Nmap的功能.目前脚本库已经包含300多个常用的Lua脚本,辅助完成Nmap的主机发现.端口扫描.服务侦测.操作系统侦测四个基本功能 ...
- Sharepoint学习笔记—习题系列--70-576习题解析 -(Q40-Q44)
Question 40 You have a social networking site in SharePoint 2010 that allows users to post content f ...
- iOS 获取ssid
- (NSString *)fetchSSIDInfo { NSString *ssid = nil; NSArray *ifs = (__bridge_transfer id)CNCopySuppo ...
- 【iOS】网络编程:上传图片到服务器
在网络编程中,如果需要上传图片,那么他的方法将会和普通的上传数据不同,下面将讲解如何上传图片. 环境信息: Mac OS X 10.9.5 Xcode 5.1.1 IOS 7.1 正文: - (NSU ...
- iOS 设备标识
//UUID NSLog(@"-=-=-=-=-=-=-=-==-=-==qqqqqqqqqqqqqqqqqqqqqqq:::::::::::%@", [[NSUUID UU ...
- 【代码笔记】iOS-按钮带下划线的写法
一,效果图. 二,工程图. 三,代码. RootViewController.h RootViewController.m - (void)viewDidLoad { [super viewDidLo ...
- android 界面设计基本知识Ⅱ
上一章讲述了Android界面设计时,一些基本控件的使用,本章主要讲述自定义控件,Fragment和Headler线程机制. 1.自定义控件 (1)基本知识 dp.sp和dx px:像素点 ...
- 振奋人心啊!!!!下一代.NET——ASP.NET vNext
这两天看到的.NET的新闻都好振奋人心啊!微软北美技术大会带来了好多好消息! 看到一篇博客园的文章,感觉太棒了.摘录下来.原文链接:http://news.cnblogs.com/n/208133/ ...
- MVC权限控制
基本方法是重写AuthorizeAttribute类的AuthorizeCore方法 protected override bool AuthorizeCore(HttpContextBase htt ...