基于AsyncTask的图片下载

王朝学院·作者佚名  2016-05-29
窄屏简体版  字體: 小  |  中  |  大  |  超大  

基于AsyncTask的图片下载有一阵子没有写程序,连基本的AsyncTask用法都记不清楚了,复习一下于是有了下面的图片加载类。

package com.hitech.download;import java.io.IOException;import org.apache.http.HttPResponse;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.AsyncTask;import android.util.Log;import android.widget.ImageView;public class ImageLoader { private static final String TAG = "ImageLoader"; private String url = null; private ImageView imageView = null; public ImageLoader() { } public ImageLoader(String url, ImageView imageView) { this.url = url; this.imageView = imageView; } public void execute() { new Loader().execute(new String[] { url }); } public class Loader extends AsyncTask<String, String, Bitmap> { @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected Bitmap doInBackground(String... params) { HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(params[0]); Log.e(TAG, params[0]); try { HttpResponse response = client.execute(request); System.out.println(response.getStatusLine().getStatusCode()); if (response.getStatusLine().getStatusCode() == 200) { return BitmapFactory.decodeStream(response.getEntity().getContent()); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Bitmap bm) { super.onPostExecute(bm); // imageView.setImageBitmap(bm); imageView.setImageBitmap(bm); } }}

调用只需要一行简单的代码就能完成图片的加载。

new ImageLoader("http://192.168.0.251/welcome.png", imageView1).execute();new ImageLoader("http://192.168.0.251/genymotion.png", imageView2).execute();

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航