关于android中bitmap使用时的oom的一些解决方法

背景:这些天弄一个关于relativelayout中设置高斯模糊图片的事情,需求是从网络上获取到该背景图片.图片过大做完后感觉还行,但是测试的时候发现背景多加载几次就会oom,通过as上的memory可以看到每次加载内存都会增加,但是却不会减少,通过查了一些资料发现以下一些结论:在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的
摘要由CSDN通过智能技术生成

背景:

这些天弄一个关于relativelayout中设置高斯模糊图片的事情,需求是从网络上获取到该背景图片.图片过大

做完后感觉还行,但是测试的时候发现背景多加载几次就会oom,通过as上的memory可以看到每次加载内存都会增加,但是却不会减少,通过查了一些资料发现以下一些结论:

在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常,但是在开发android的时候,很少会注意或者意识到释放内存的重要性,因为大家在使用过程中,涉及的图片资源不多,或者比较稳定,来回切换界面,图片也就那么几张或者使用的都是很小的图片,根本不会感觉到图片占用内存可能引发的潜在危机.

解决方法:

1,压缩图片

bitmap过大会产生oom,首先,这种方式是通过牺牲图片效果的方式的,所以压缩后可能效果没之前好了,但是我的需求本来就是需要高斯模糊,说白了就是模糊一点,所以图片效果并不是很重要,所以,压缩是可行的….方法是通过网络获取图片的流,代码如下

`new Thread(new Runnable() {
            @Override
            public void run() {
                try {
         
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值