listview加载图片问题

lv6917527 2016-03-23 04:35:13
private Bitmap getBitmapFromUrl(String url) {
Bitmap bitmap = null;

try {
URLConnection conn = new URL(url).openConnection();
conn.setConnectTimeout(CONNECT_TIMEOUT);
conn.setReadTimeout(READ_TIMEOUT);
bitmap = BitmapFactory.decodeStream((InputStream) conn.getContent());
} catch(Exception e) {
e.printStackTrace();
}

return bitmap;
}
如上方法最后被getView调用,但是当我快速滑动Listview,程序马上就报错了
报错信息在图片里面,首先报错的信息是内存不够,接着下面就是报的
bitmap = BitmapFactory.decodeStream((InputStream) conn.getContent());这句代码的错误,
有点疑惑,请广大网友们看看,帮忙分析分析,先谢过了。
...全文
254 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
小白在此 2016-03-24
  • 打赏
  • 举报
回复
listview 加载图片要进行内存优化,缓存,等等,自己处理还是非常麻烦的,如果是为了开发,可以搜一些开源图片加载框架
  • 打赏
  • 举报
回复
用ImageLoader吧,异步加载、缓存都做好了的。
bdmh 2016-03-24
  • 打赏
  • 举报
回复
是不是你的图片太大了,太大会溢出的,你需要压缩这个图像,可以设置option
lv6917527 2016-03-24
  • 打赏
  • 举报
回复
引用 3 楼 bdmh 的回复:
是不是你的图片太大了,太大会溢出的,你需要压缩这个图像,可以设置option
我最后是用这种办法解决的,谢谢了。
lv6917527 2016-03-24
  • 打赏
  • 举报
回复
引用 2 楼 heaimnmn 的回复:
最好用第三方,你这个别写在一起,conn.getContent()是inputstream吗
是IN
lv6917527 2016-03-24
  • 打赏
  • 举报
回复
引用 1 楼 wei220000 的回复:
不要自己写异步加载图片的代码了,直接用开源的吧,比如Glide什么的。你这代码里面就犯了很多错,比如,读取一个In之后没有刷新,没有释放。
这个就是从网上下载下来的异步加载图片的包,还是报错了,别人写的也不全面吧。
哎,真难 2016-03-23
  • 打赏
  • 举报
回复
最好用第三方,你这个别写在一起,conn.getContent()是inputstream吗
wei220000 2016-03-23
  • 打赏
  • 举报
回复
不要自己写异步加载图片的代码了,直接用开源的吧,比如Glide什么的。你这代码里面就犯了很多错,比如,读取一个In之后没有刷新,没有释放。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧