开发android客户端,加载大量图片。内存使用量大,出现oom的问题,一直很头疼!
--
您收到此信息是由于您订阅了 Google 论坛“Android Developers China Team”论坛。
要在此论坛发帖,请发电子邮件到 android-de...@googlegroups.com
要退订此论坛,请发邮件至 android-develope...@googlegroups.com
更多选项,请通过 http://groups.google.com/group/android-developers-zh?hl=zh-CN 访问
该论坛
Android中国论坛 http://www.androidcn.net
Android中国WiKi http://www.androidcn.net/wiki
你可以用下面的code取得程序可用的内存大小。然后保证加载的图片不要超过可用内存的1/2就可以了。
ActivityManager am = (ActivityManager) getApplication()
.getSystemService(ACTIVITY_SERVICE);
int appMemSize = am.getMemoryClass() * 1024 * 1024;
然后用下面的 code加载图片。
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inSampleSize = sampleSize;//最好是2^n
bitmap = BitmapFactory.decodeStream(inputStream, null, opts);
stackoverflow上也有关于weak ref的讨论。大概是因为android对weak ref实现有问题,weak
ref的obj会被提前释放。所以不建议使用。
2012/3/22 无边的云 <liyan...@gmail.com>: