当前位置:编程学习 > wap >>

安卓开发中内存资源不足问题,求帮忙!!!

在安卓的开发中,要用到图片就用BitmapFactory对图片资源加载,有些时候要加载很多图片,图片过多过大所导致内存溢出,我试过加载图片后使用,然后就释放该图片资源recycle(),这样做后图片的显示不正常,我想问下有什么办法能加载很多图片资源但不会造成内存溢出,把图片做小些,还有什么办法? --------------------编程问答-------------------- 1.利用listview来显示大量图片,listview有优化,表示的内容再多也只是给看的见的行反复使用相同的内存.
2.保存图片的变量不要使用强应用,使用SoftReference可以在内存快要溢出的时候释放掉一定的资源.
3.在加载数据之前调用system.gc.
--------------------编程问答-------------------- 加载很多图片不是问题,问题是你不能一次性都给它加载到内存里去。增加缓存吧,每次只加载你能看到的,看不到的不加载。 --------------------编程问答--------------------
引用 2 楼 fylz1125 的回复:
加载很多图片不是问题,问题是你不能一次性都给它加载到内存里去。增加缓存吧,每次只加载你能看到的,看不到的不加载。

楼上的能说得再具体点么? 你这边说的缓存是指的什么?   我也遇到了类似的问题,但是没有找到解决办法。 --------------------编程问答--------------------
引用 1 楼 allen526 的回复:
1.利用listview来显示大量图片,listview有优化,表示的内容再多也只是给看的见的行反复使用相同的内存.
2.保存图片的变量不要使用强应用,使用SoftReference可以在内存快要溢出的时候释放掉一定的资源.
3.在加载数据之前调用system.gc.


我用的是su易做图ceview来做框架的,没试那个listview
强应用是什么?是不是常量那样子的?  softreference在释放资源的时候会不会释放的是要用的资源
System.gc();这个我刚试了,没特别的效果哦 --------------------编程问答--------------------
引用 2 楼 fylz1125 的回复:
加载很多图片不是问题,问题是你不能一次性都给它加载到内存里去。增加缓存吧,每次只加载你能看到的,看不到的不加载。


我做的是个游戏,人物的各个状态图不得不一次性加载哦,加上背景什么的,一下子一次性显示的东西就特别多了 --------------------编程问答-------------------- 模拟器会爆掉  用2.3的模拟器 可以设置ram大小  2.2一下的模拟器默认ram大小是256M --------------------编程问答--------------------
引用 4 楼 lzy32402 的回复:
引用 1 楼 allen526 的回复:

1.利用listview来显示大量图片,listview有优化,表示的内容再多也只是给看的见的行反复使用相同的内存.
2.保存图片的变量不要使用强应用,使用SoftReference可以在内存快要溢出的时候释放掉一定的资源.
3.在加载数据之前调用system.gc.


我用的是su易做图ceview来做框架的,没试那个listview……

游戏就不能这样了...
SoftReference是用在缓存上的....
你的游戏用的图片是不是太大,太多了? 超过机器的配置了....PC游戏也会这样哦....
关分得小一些呢?一次不要加载那么多资源
补充:移动开发 ,  Android
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,