最近用到了加载网络图片,研究了一下,写一点简单的介绍:
首先创建一个线程去取图片(网络请求必须放在线程中):
/**
* 使用继承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:
http://download.****.net/detail/q610098308/8538743