【发布时间】:2015-01-08 20:01:19
【问题描述】:
当用户单击按钮时,我会在 Activity 代码中不断切换布局的背景:
...
mylayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.img1));//On First click
mylayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.img2));//On Second Click
mylayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.img10));//On 10th Click
...
mylayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.img1));//On 11th Click 1st image again and so on.
我有 10 张图片一直在旋转。
很快,它就会导致 OutOfMemory 异常。我做错了什么?
如果它在我的清单文件中很重要,我有:
android:minSdkVersion="11"
android:targetSdkVersion="17" />
编辑 1
图片的平均大小为:50K
图片的平均尺寸为:600x450
所有图像 img1、img2 等都是 jpeg 图像
解决方案更新
将图像尺寸减小到 300x200 解决了这个问题。这一变化显着降低了内存需求。
【问题讨论】:
-
当您在应用程序中显示更多图像时,当您一次显示所有图像时,您必须使用图像加载器任务处理图像大小超过堆大小,从而出现内存不足异常
-
图片的尺寸是多少?
-
background drawables 意味着它可能超过 800x1280 的图像,所以这就是他内存不足的原因@Simon
-
这就是我的想法。但是,他可能会使用更小的和升级的?
-
通过开发者网站的Loading Large Bitmaps Efficiently 以有效的方式显示大图
标签: android performance android-activity