我制作的壁纸应用程序包含大约150张高清图像,我将它们全部添加到gridview。
它可以很容易地使用高ram手机和模拟器,但有时由于内存不足而强行关闭我能做什么。
它是250张图像,我把它减少到150张图像所以不希望减少图像数量的解决方案
任何人都可以帮助我?
05-04 12:27:36.387: E/AndroidRuntime(929): FATAL EXCEPTION: main
05-04 12:27:36.387: E/AndroidRuntime(929): java.lang.OutOfMemoryError
05-04 12:27:36.387: E/AndroidRuntime(929): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
05-04 12:27:36.387: E/AndroidRuntime(929): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
答案 0 :(得分:2)
我制作的壁纸应用程序包含大约150张高清图像,我将它们全部添加到gridview
如果您的GridView
有用,则单个单元格无法占据整个屏幕。相反,您的GridView
将显示壁纸图片的缩略图,因此用户可以一次看到多个此类缩略图并滚动浏览网格。 GridView
中不需要150张高清图像 - GridView
中需要150张高清图像缩略图。
因此,使用BitmapFactory.Options
和inSampleSize
加载图片的缩略图,其中inSampleSize
将对图片进行下采样以减少使用内存。 Here is a sample project我使用inSampleSize
的地方,并在为inSampleSize
选择更高的值时展示图像质量的变化。