Android 缓存大量bitmap,导致手机发热,卡顿!

yc0008 2016-07-10 10:57:57
在ListView中保存了大量图片,缓慢滑动屏幕还没什么,快速滑动屏幕时会很卡,使用的是这种方法:
   FileOutputStream out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);

甚至还会报oom,请问各路大神有什么好办法!
...全文
339 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
magicyang1234 2016-07-12
  • 打赏
  • 举报
回复
图片开源库,基本用法请BAIDU,有问题去看GITHUB,或者GOOGLE。
passself 2016-07-12
  • 打赏
  • 举报
回复
手机发烫主要是因为占用CPU 比较高或者用网络比较多,说明你的图片缓存策略有问题 ,老是频繁的去网络获取,并没有合理有效的利用缓存策略或者三方库
程序员小冰 2016-07-12
  • 打赏
  • 举报
回复
lru我感觉楼主应该不是很懂,可以用imageloader 或者Picasso进行处理,简单易用。
qq754170571 2016-07-12
  • 打赏
  • 举报
回复
打错,应该是ImageLoad
qq754170571 2016-07-12
  • 打赏
  • 举报
回复
试试LmageLoad
yc0008 2016-07-12
  • 打赏
  • 举报
回复
滑动时怎么禁止加载图片啊?@yangchengtest
  • 打赏
  • 举报
回复
listView里面一般使用压缩过的图片,小一点,没问题
yc0008 2016-07-11
  • 打赏
  • 举报
回复
Universal-image-loader 是什么?怎么用?@yangchengtest
magicyang1234 2016-07-11
  • 打赏
  • 举报
回复
建议用Universal-image-loader,最好能读懂里面最基本的几个类。 滑动卡顿,就算不OOM,在滑动过程中也需要停止图片的加载。需要设置滑动禁止加载状态。
yc0008 2016-07-11
  • 打赏
  • 举报
回复
我是要保存进SD卡的
weixin_35343693 2016-07-10
  • 打赏
  • 举报
回复
你这是要做缓存的?保存在内存中的话用弱引用来做,LRCcache,用法跟MAP一样的,他会在内存不够,系统会回收的。

80,354

社区成员

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

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