背景:
这些天弄一个关于relativelayout中设置高斯模糊图片的事情,需求是从网络上获取到该背景图片.图片过大
做完后感觉还行,但是测试的时候发现背景多加载几次就会oom,通过as上的memory可以看到每次加载内存都会增加,但是却不会减少,通过查了一些资料发现以下一些结论:
在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常,但是在开发android的时候,很少会注意或者意识到释放内存的重要性,因为大家在使用过程中,涉及的图片资源不多,或者比较稳定,来回切换界面,图片也就那么几张或者使用的都是很小的图片,根本不会感觉到图片占用内存可能引发的潜在危机.
解决方法:
1,压缩图片
bitmap过大会产生oom,首先,这种方式是通过牺牲图片效果的方式的,所以压缩后可能效果没之前好了,但是我的需求本来就是需要高斯模糊,说白了就是模糊一点,所以图片效果并不是很重要,所以,压缩是可行的….方法是通过网络获取图片的流,代码如下
`new Thread(new Runnable() {
@Override
public void run() {
try {