Android解析获取网络上的图片(支持bmp格式)
2014-07-05 20:13
260 查看
Android学习系列 - 显示网络上的图片(支持bmp格式))
见如下代码:
/**
* 到Url地址上去下载图片,并回传Bitmap回來
*
* @param imgUrl * @return
*/
public static Bitmap getBitmapFromUrl(String imgUrl)
{
URL url;
Bitmap bitmap = null;
try {
url = new URL(imgUrl);
InputStream is = url.openConnection().getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
// bitmap = BitmapFactory.decodeStream(bis); 注释1
byte[] b = getBytes(is);
bitmap = BitmapFactory.decodeByteArray(b,0,b.length);
bis.close();
}catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
return bitmap;
}
/**
* 将InputStream对象转换为Byte[]
* @param is
* @return
* @throws IOException */
public static byte[] getBytes(InputStream is) throws IOException{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int len = 0;
while ((len = is.read(b, 0, 1024)) != -1)
{
baos.write(b, 0, len);
baos.flush();
}
byte[] bytes = baos.toByteArray();
return bytes;
}
得到Bitmap 之后,然后调用ImageView的setImageBitmap方法就正常显示了
PS:注释1这里注意一下,原本是用注释1这里来进行获取的,png,jpg格式均正常
,但是图片格式为bmp时,这个方法获取的时候一直为null, 故改为现在这种方式。
见如下代码:
/**
* 到Url地址上去下载图片,并回传Bitmap回來
*
* @param imgUrl * @return
*/
public static Bitmap getBitmapFromUrl(String imgUrl)
{
URL url;
Bitmap bitmap = null;
try {
url = new URL(imgUrl);
InputStream is = url.openConnection().getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
// bitmap = BitmapFactory.decodeStream(bis); 注释1
byte[] b = getBytes(is);
bitmap = BitmapFactory.decodeByteArray(b,0,b.length);
bis.close();
}catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
return bitmap;
}
/**
* 将InputStream对象转换为Byte[]
* @param is
* @return
* @throws IOException */
public static byte[] getBytes(InputStream is) throws IOException{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int len = 0;
while ((len = is.read(b, 0, 1024)) != -1)
{
baos.write(b, 0, len);
baos.flush();
}
byte[] bytes = baos.toByteArray();
return bytes;
}
得到Bitmap 之后,然后调用ImageView的setImageBitmap方法就正常显示了
PS:注释1这里注意一下,原本是用注释1这里来进行获取的,png,jpg格式均正常
,但是图片格式为bmp时,这个方法获取的时候一直为null, 故改为现在这种方式。
相关文章推荐
- Android在网络上分析获取图片(支持bmp格式)
- Android异步任务AsyncTask使用解析 获取网络图片
- Android异步下载网络图片&android解析xml文件的方式&使用Adapter为ListView提供数据
- Android 如何获取网络上的图片
- Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)
- 【android初级】之Android之从网络上获取数据(图片,网页,xml,json等)
- Android进阶2之Https访问网络资源(获取网络图片)
- Android中获取网络图片的三种方法
- Android--从网络获取图片
- Android中获取网络图片的三种方法
- Android 获取网络图片方法
- android 简单实现获取网络图片
- Android从网络获取图片并放大
- Android之网络操作 - 从网络获取图片或网页
- android学习笔记16--------------Android实现网络图片与html源码获取
- android获取互联网图片与源代码——网络编
- Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)
- android学习笔记16--------------Android实现网络图片与html源码获取
- Android进阶2之Https访问网络资源(获取网络图片)
- Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)