【发布时间】:2014-07-12 21:13:27
【问题描述】:
在应用程序中,我需要在创建时加载一些位图。 为了节省内存,我正在加载一个图像,通过创建一个 scaledBitmap 来重新缩放它,回收未缩放的 Bitmap 等等:
bmpUnscaled = BitmapFactory.decodeResource(getResources(), R.drawable.cultivation_plant_resized_1);
plant1 = Bitmap.createScaledBitmap(bmpUnscaled,(int) plant[0].getWidth(), (int) plant[0].getHeight(), true);
bmpUnscaled.recycle();
System.gc();
bmpUnscaled = BitmapFactory.decodeResource(getResources(), R.drawable.cultivation_plant_resized_2);
plant2 = Bitmap.createScaledBitmap(bmpUnscaled,(int) plant[0].getWidth(), (int) plant[0].getHeight(), true);
bmpUnscaled.recycle();
System.gc();
等等……
我正在做这 10 张图像,它们是相对于屏幕分辨率进行缩放的。 原始图像是 PNG(570x900(最大 660KB))
有没有人有一些想法来简单地节省内存? 我现在很绝望……
【问题讨论】:
-
你为什么说
max 660kb?您没有文件(例如PNG)和加载在内存中的位图之间的区别吗?该图像需要 2.5MB 的堆空间来加载(570 x 900 x 4 字节)