异步下载网络图片并保存
来源:互联网 发布:大数据概念板块 编辑:程序博客网 时间:2024/05/23 12:37
package weixinlookimgsdemo.hankkin.com.savegifpic;import android.app.Activity;import android.app.ProgressDialog;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.AsyncTask;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageView;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;public class MainActivity extends Activity { private Button button,button2; private ImageView imageView; private String image_Path = "http://e.hiphotos.baidu.com/image/pic/item/2fdda3cc7cd98d10b510fdea233fb80e7aec9021.jpg"; private ProgressDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button1); button2 = (Button) findViewById(R.id.button2); imageView = (ImageView) findViewById(R.id.imageView1); dialog = new ProgressDialog(this); dialog.setTitle("提示信息"); dialog.setMessage("正在下载,请稍候..."); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { new MYTask().execute(image_Path); } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } }); } public class MYTask extends AsyncTask<String, Void, Bitmap> { @Override protected void onPreExecute() { super.onPreExecute(); dialog.show(); } @Override protected Bitmap doInBackground(String... arg0) { URL url = null; Bitmap bitmap = null; try { url = new URL(arg0[0]); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.setConnectTimeout(1000 * 6); if (con.getResponseCode() == 200) { InputStream inputStream = con.getInputStream(); //将输入流转换字节数组 byte[] b = getByte(inputStream); //读取字节转换成bitmap,将Bitmap返回,更新ui bitmap= BitmapFactory.decodeByteArray(b, 0, b.length); // 首先保存图片 File appDir = new File(Environment.getExternalStorageDirectory(), "保存图片"); if (!appDir.exists()) { appDir.mkdir(); } String fileName = System.currentTimeMillis() + ".jpg"; File file = new File(appDir, fileName); FileOutputStream fileOutputStream = new FileOutputStream(file); fileOutputStream.write(b); fileOutputStream.close(); } } catch (java.io.IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return bitmap; } /** * 主要是更新UI的操作 */ @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); imageView.setImageBitmap(result); dialog.dismiss(); } } private byte[] getByte(InputStream inputStream) throws Exception { byte[] b = new byte[1024]; ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); int len = -1; while ((len = inputStream.read(b)) != -1) { byteArrayOutputStream.write(b, 0, len); } byteArrayOutputStream.close(); inputStream.close(); return byteArrayOutputStream.toByteArray(); } }
0 0
- 异步下载网络图片并保存
- android-下载保存网络图片并显示下载进度条
- 下载图片并保存
- 网络下载 并保存
- 从网络上进行下载图片,并保存到本地
- Android ImageView 显示网络图片并下载保存
- 下载指定网络验证码图片,并保存
- Android下载网络图片并保存在本地相册
- 自定义Gallery异步下载并显示网络图片
- 根据Url异步下载图片,并将图片保存到本地
- AS3下载并保存图片
- scrapy 下载并保存图片
- Android异步下载网络图片
- Android异步下载网络图片
- Android异步下载网络图片
- Android异步下载网络图片
- Android异步下载网络图片
- Android异步下载网络图片
- 多项式加法
- angular bugger
- python 如何写入中英文字符串到文件
- 嵌入式项目1--按键设计
- tensorflow15《TensorFlow实战Google深度学习框架》笔记-07图像数据处理 code
- 异步下载网络图片并保存
- CentOS安装Python2.7
- PX4-Pixhawk-开发环境搭建
- excel中数据导入到mysql数据库
- 进程和现成相关知识积累查找
- [MFC] 记录工作中常用的琐碎知识点
- 关于matlab中get和set的用法(转)
- 谈谈对Spring IOC的理解
- 管理器点击浏览时出现Service Unavailable