`
thierry.xing
  • 浏览: 657107 次
  • 性别: 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代码-这是一个专用于解决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库对现代... 轻松安排异步任务以实现最佳执行。 第三方库和杂项库 以加载图像 :用于 通过简化的代码管理后台线程并减少了对回

    PopularMovies

    我已经使用了多种核心基本技术,例如约束布局,毕加索API,Recycler View API,异步任务,加载程序等。 它使用广播接收器检查网络连接连通性。 如果网络连接不可用,它将从数据库中获取所需的收藏夹应用程序。 我...

Global site tag (gtag.js) - Google Analytics