最近用到了加载网络图片,研究了一下,写一点简单的介绍:


首先创建一个线程去取图片(网络请求必须放在线程中):

/**
* 使用继承java.lang.Thread类的方式创建一个线程
* 直接取图片,简单方式;
* @author
*/
public class ThreadTest extends Thread {

/**
* 重写(Override)run()方法 JVM会自动调用该方法
*/
public void run() {
System.out.println("I'm running!");

mbitmap = getHttpBitmap(baidu_Logo_Url);
}
}


网线请求图片:

/** 
* 获取网落图片资源
* @param url
* @return
*/
public static Bitmap getHttpBitmap(String url){
URL myFileURL;
Bitmap bitmap=null;
try{
myFileURL = new URL(url);
//获得连接
HttpURLConnection conn=(HttpURLConnection)myFileURL.openConnection();
//设置超时时间为6000毫秒,conn.setConnectionTiem(0);表示没有时间限制
conn.setConnectTimeout(6000);
//连接设置获得数据流
conn.setDoInput(true);
//不使用缓存
conn.setUseCaches(false);
//这句可有可无,没有影响
//conn.connect();
//得到数据流
InputStream is = conn.getInputStream();
//解析得到图片
bitmap = BitmapFactory.decodeStream(is);
//关闭数据流
is.close();
}catch(Exception e){
e.printStackTrace();
}

return bitmap;

}


然后再显示就可以了;

imageViewSample.setImageBitmap(mbitmap);


实际使用我是用了一个 AsyncImageView类;

要吧实现异步加载,这里不再描述,详细见DEMO: