两种方法对应两种常用的图像格式,Drawable和Bitmap,网络侧的操作大同小异都是Http协议的。
第一种:下载Drawable
该方法可以直接使用,参数是图像的下载地址。
protected Drawable loadImageFromUrl(String imageUrl) {
try {
//根据图片的URL,下载图片,并生成一个Drawable对象
return Drawable.createFromStream(new URL(imageUrl).openStream(), "src");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
第二种:下载Bitmap
该方法也是封装好的,可以直接使用,参数同样是下载地址。
public static Bitmap returnBitMap(String url) {
URL myFileUrl = null;
Bitmap bitmap = null;
try {
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
conn.setConnectTimeout(2000);
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
注:下载这种耗时的操作最好单独启动一个线程或者使用异步任务AsyncTask,多线程需要注意更新UI只能在UI线程中来操作,否则会出错。