`
thierry.xing
  • 浏览: 655953 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
580fa9c1-4a0c-3f40-a55a-c9256ce73302
Sencha Touch中...
浏览量:0
社区版块
存档分类
最新评论

Android 异步任务加载图片代码

阅读更多

自己写的Android 异步任务加载图片代码

 

public class DownloadImageTask extends AsyncTask<String, Void, Bitmap>
{
	private static final String TAG = "DownloadImageTask";
	private String url;
	private ImageView imageViewReference;

	public DownloadImageTask(ImageView imageView)
	{
		imageViewReference = imageView;
	}

	@Override
	protected Bitmap doInBackground(String... params)
	{
		// TODO Auto-generated method stub
		Log.d(TAG, "thumb_image_url:" + params[0]);
		url = params[0];
		return downloadBitmap(url);
	}

	@Override
	protected void onPostExecute(Bitmap bitmap)
	{
		// BitmapDrawable drawable=BitmapDrawable.
		// TODO Auto-generated method stub
		if (imageViewReference != null)
		{
			imageViewReference.setImageBitmap(bitmap);
		}
	}

	Bitmap downloadBitmap(String url)
	{
		final int IO_BUFFER_SIZE = 4 * 1024;
		final HttpClient client = new DefaultHttpClient();
		// : AndroidHttpClient.newInstance("Android");
		final HttpGet getRequest = new HttpGet(url);
		try
		{
			HttpResponse response = client.execute(getRequest);
			final int statusCode = response.getStatusLine().getStatusCode();
			if (statusCode != HttpStatus.SC_OK)
			{
				Log.v("ImageDownloader", "Error" + statusCode + "while restrieving bitmap from" + url);
				return null;
			}
			final HttpEntity entity = response.getEntity();
			if (entity != null)
			{

				InputStream inputStream = null;
				try
				{
					inputStream = entity.getContent();
					return BitmapFactory.decodeStream(inputStream);
				} finally
				{
					if (inputStream != null)
					{
						inputStream.close();
					}
					entity.consumeContent();
				}
			}
		} catch (IOException e)
		{
			getRequest.abort();
			Log.v(TAG, "I/O error while retrieving bitmap from " + url, e);
		} catch (IllegalStateException e)
		{
			getRequest.abort();
			Log.w(TAG, "Incorrect URL: " + url);
		} catch (Exception e)
		{
			getRequest.abort();
			Log.w(TAG, "Error while retrieving bitmap from " + url, e);
		} finally
		{
			if ((client instanceof AndroidHttpClient))
			{
				((AndroidHttpClient) client).close();
			}
		}
		return null;
	}
}
 

 

1
3
分享到:
评论

相关推荐

    异步加载网络图片

    加载图片时先查看缓存中时候存在该图片 如果存在则返回该图片 否则先加载载一个默认的占位图片 同时创建一个通过网络获取图片的任务并添加 任务完成后放松消息给主线程更新界面 使用方法: AsynImageLoader ...

    Android 异步加载图片,使用LruCache和SD卡或手机缓存

    1、使用了线程池来管理下载任务 2、使用LruCache来缓存图片 3、使用手机来缓存图片 4、GridView滑动的时候取消下载任务,静止的时候进行下载,GridView滑动更加...5、降低了代码的耦合性,结构更加的清晰,便于以后重用

    8:Android项目源码-毕业设计源码(168套).rar

    android Gallery实现异步加载网络图片 并只加载当前停止页面图.zip Android ListView下拉刷新 Demo.zip Android SMS 短信内容显示在一个 泡泡 形状的窗口中.zip Android 打包签名 从生成keystore到完成签名.zip ...

    Android知识点及重要代码合集 word文档

    9.2 分页加载代码 106 9.3解决图文混排的问题(方法1) 109 9.4 进度对话框提示加载和页脚提示加载 118 10.1 实现分页及解决图文混排的问题 119 10.2 GridView常用属性(使用参考ListView) 124 10.3 ...

    Android代码-这是一个专用于解决Android中网络请求及图片加载的缓存处理框架

    这是一个专用于解决Android中网络请求及图片加载的缓存处理框架 项目目标 本项目是作为实验项目,不保证其稳定性及可靠性 因为缓存业务的复杂性,本项目尽可能适应更多的使用场景 目前考虑到的,会实现的功能清单,...

    Andorid项目源码(153套)

    Android模仿易网新闻页面源码(异步加载).zip Android瀑布流实现,类似于蘑菇街和迷尚 应用里的排列.zip android面试题.zip Android任务管理器源码.zip Android奇艺高清UI界面源代码.zip android网络视频播放器(完整...

    Android UI组件实例集合

    是一个轻量级的开发包,用于实现 Android 上的异步任务和操作 UI 元素,可让 Android 应用开发更加简单、容易,更有趣。 16、Android-Universal-Image-Loader 为了实现异步的网络图片加载,支持多线程异步加载。 ...

    RxJava-vs-AsyncTask:使用 AsyncTask、RxJava 和 RxAndroid 加载数据的示例代码

    RxJava 与 AsyncTask 此示例应用程序使用三种不同的方法将作为... 异步任务:loadDataAsyncTask() RxJava:loadDataRxJava() RxAndroid: loadDataRxAndroid() 只需注释/注释即可尝试它们中的每一个是如何工作的。

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--异步任务AsyncTask的用法 |--异步任务的自定义 |--快捷方式增删查 |--手势识别器GestureDetector的用法 |--拍照之调用系统相机并显示及保存 |--拨打电话 |--按健之长按menu事件屏蔽 |--按健监听按返回健回桌面 |-...

    Android典型技术模块开发详解

    3.1 什么是任务 3.2 Activity的生命周期 3.3 基本用法 3.3.1 创建Activity 3.3.2 启动Activity 3.3.3 窗口Activity 3.3.4 Activity生命周期验证 3.4 Activity之间通信 3.4.1 Activity传递一般类型 3.4.2 Activity...

    android开发从入门到项目

    四大组件(服务、广播、ContentProvider、页面容器)基础UI组件(ListView、ViewPager)异步任务机制(AsyncTask、Handler、线程池)布局优化(层级、绘制、碎片化处理)图片加载(Bitmap、缓冲区)3、项目的管理 ...

    Bitmapfun 完整的注释

    好久以前传过一个 注释非常不完成的bitmapfun,这次这个是非常完整的注释,包括异步任务的源代码也给注释了,有不足的地方或者错误的地方请多多指正。 另外在里面又添加了一个能够自由指定尺寸进行图片加载的方法。

    JAVA上百实例源码以及开源项目源代码

    Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰效果 Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、...

    Android-Jetpack-Architecture-Components:Packt Publishing提供的Android Jetpack体系结构组件

    Android Jetpack架构组件[视频] 这是由发行的的代码存储库。 它包含从头到尾完成...使用工作管理器异步安排任务 说明和导航 假设知识 无需具备Android体系结构组件的使用经验 技术要求 本课程具有以下软件要求: 硬

    Android学习系列教程实例.pdf

    Android 学习文档总结 ................... 1 DevDiv 推荐资源 ........................ 2 Windows 8 ........................................................... 2 iOS .........................................

    JAVA上百实例源码以及开源项目

    util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以...

    pictrr:只是Unsplash API的愚蠢且无用的实现

    Picttr 另一个Unsplash客户,认真吗? 好吧,我建立了这个项目来研究MVVM架构和Jetpack库对现代... 轻松安排异步任务以实现最佳执行。 第三方库和杂项库 以加载图像 :用于 通过简化的代码管理后台线程并减少了对回

Global site tag (gtag.js) - Google Analytics