图片异步加载工具类
来源:互联网 发布:通达信趋势浪指标源码 编辑:程序博客网 时间:2024/06/05 06:26
我们的程序中,加载图片一般都是用的第三方ImageLoader很方便,但是如果用最原始的异步加载图片,应该怎样加载呢?本文就是讲解怎样异步加载图片
首先写一个类继承AsyncTask,代码如下:
public class DownLoadImage extends AsyncTask<String,Void,Bitmap>{ //构造 private DownloadListener downloadListener; public DownLoadImage(DownloadListener downloadListener) { this.downloadListener = downloadListener; } public interface DownloadListener{ public void preDoSomething(); public void afterDoSomething(Bitmap bitmap); } @Override protected Bitmap doInBackground(String... strings) { //耗时操作 try { //url String path=strings[0]; URL url=new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); //获得请求码 int code= conn.getResponseCode(); if(code==200){ InputStream is = conn.getInputStream(); //获得图片 Bitmap bitmap= BitmapFactory.decodeStream(is); return bitmap; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPreExecute() { downloadListener.preDoSomething(); super.onPreExecute(); } @Override protected void onPostExecute(Bitmap bitmap) { downloadListener.afterDoSomething(bitmap); super.onPostExecute(bitmap); }}调用此方法:
//加载图片 private void loadImage(final ImageView img, String imgpath) { DownLoadImage dl=new DownLoadImage(new DownLoadImage.DownloadListener() { @Override public void preDoSomething() { img.setImageResource(R.mipmap.ic_launcher); } @Override public void afterDoSomething(Bitmap bitmap) { if(bitmap!=null){ img.setImageBitmap(bitmap); }else{ img.setImageResource(R.mipmap.ic_launcher); } } }); //请求图片 <span style="color:#ff0000;">dl.execute(imgpath);</span> }
简单的几行代码,就实现了图片的异步加载代码
0 0
- 图片异步加载工具类
- 异步线程加载图片工具类
- Android LruCache图片异步加载工具类
- 异步加载图片的工具类
- 通用工具类-异步加载图片&缓存提取
- Android图片异步加载类
- android异步加载图片类
- android工具类----(从网络获取图片以及异步加载图片)
- 加载图片工具类
- 图片加载工具类
- 加载图片工具类
- 图片加载工具类
- 图片加载工具类
- Android学习——图片异步加载工具类 用到了SoftReference
- android中图片异步加载工具类 ---利用双缓存技术和线程池
- Unity+NGUI打造网络图片异步加载与本地缓存工具类(一)
- Unity+NGUI打造网络图片异步加载与本地缓存工具类(二)
- 【Unity3D自学记录】打造网络图片异步加载与本地缓存工具类
- Nginx实战(四) 限速功能
- 设置oracle数据库密码永不过期(ORA-28002)
- 2016百度之星资格赛 Problem A
- 过滤git log中的合并(merge)提交
- ORACLE、DB2临时表简介
- 图片异步加载工具类
- 使用Mysql和NoSQL实现热词统计功能
- Nginx实战(五) 反向代理
- 【iOS】让我们一次性解决导航栏的所有问题
- android系统源码目录system/framework下各个jar包的用途以及部分jar包编译源码的位置
- 【C语言学习笔记】一、数据类型那些事儿
- Unity 实时显示FPS——移动端测试神器
- 已知圆弧上两点坐标及圆半径,计算圆心坐标
- RNN_LSTM公式