从零开始编写图片加载库(二)之AsyncTask图片下载
来源:互联网 发布:2016年非公经济数据 编辑:程序博客网 时间:2024/05/22 06:08
上篇文章 从零开始编写图片加载库(一)之Handler+Thread图片下载我们是通过Handler+Message来更新View,这张我们来通过android提供的异步操作AsyncTask来进行网络图片下载。
package cn.sundroid.file;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.AsyncTask;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends Activity implements OnClickListener { private final String TAG = this.getClass().getSimpleName(); private Button save; private Button get; private ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); save = (Button) findViewById(R.id.save); save.setOnClickListener(this); get = (Button) findViewById(R.id.get); get.setOnClickListener(this); image = (ImageView) findViewById(R.id.image); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.get: new MyAsyncTask().execute(""); break; case R.id.save: break; default: break; } } private class MyAsyncTask extends AsyncTask { @Override protected Bitmap doInBackground(String... params) { String url = "http://b.hiphotos.baidu.com/image/pic/item/0824ab18972bd4073cc730f479899e510fb309b2.jpg"; Bitmap bitmap = null; try { HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection(); conn.setConnectTimeout(5 * 1000); conn.setReadTimeout(20 * 1000); InputStream is = conn.getInputStream(); bitmap = BitmapFactory.decodeStream(is); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return bitmap; } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); image.setImageBitmap(result); } }}
图片就不贴了效果图和上一章节一样。如果你对AsyncTask不了解可以读这篇文章
0 0
- 从零开始编写图片加载库(二)之AsyncTask图片下载
- 从零开始编写图片加载库(一)之Handler+Thread图片下载
- 从零开始编写图片加载库(三)之线程池图片下载
- AsyncTask加载之图片下载(2)
- AsyncTask异步加载之图片下载
- 从零开始编写图片加载库(四)之图片缓存MemoryCache
- 从零开始编写图片加载库(五)之图片缓存DiskCache
- AsyncTask的使用 (二)图片下载,进度条
- AsyncTask之加载图片
- Android之AsyncTask异步加载(二)
- 从零开始编写深度学习库(二)FullyconnecteLayer CPU编写
- android异步加载之Handler、AsyncTask(二)
- Android之AsyncTask网络加载图片
- Android有效加载图片 之 使用AsyncTask异步加载图片
- Android开发之图片处理专题(二):利用AsyncTask和回调接口实现图片的异步加载和压缩
- 异步加载图片AsyncTask
- AsyncTask异步加载图片
- 使用AsyncTask加载图片
- 为UIWebView实现离线浏览
- [LeedCode OJ]#86 Partition List
- 通过rpm方式安装ipsvadm
- 零基础学Minecraft编程(图文版)——互动出版网
- OpenCVz中的几种角点检测算法
- 从零开始编写图片加载库(二)之AsyncTask图片下载
- Userdefault在Mac下Xcode中的存储位置
- vs2010 替换 字符
- 顶级风投资本家对未来科技的10大预测
- ffmpeg configure 不支持 --enable-libopencv 解决
- 从零开始编写图片加载库(三)之线程池图片下载
- Android: Looper, Handler, HandlerThread. Part II
- Android OkHttp完全解析
- 如何做互联网产品分析?