在我的应用程序中,我必须使用500x500像素的小图像显示大约10000 x 5000的图像。即,通过平铺图像。 为了将所有图像平铺到最初,我从sdcard收集所有位图,以便在画布上绘制。
但是当我使用BitmapFactory.decodeFile(path)
从外部存储加载图像时遇到错误 java-lang-outofmemoryerror-bitmap-size-exceeded-vm-budget-android
任何人都可以如何避免这种错误,并且想出如何将大量图像平铺到单个图像中。
感谢你, SRINIVAS
答案 0 :(得分:0)
切勿加载任何不需要的瓷砖。 “我从sdcard收集所有位图”表示你正在解压缩你可能需要的每一张图像,这是错误的做法。
使用较小的瓷砖。 256x256是一个很好的尺寸。
将它们加载为Config.RGB565(即16bpp)。
定期回收()您不需要的位图。
基本上,您需要实现某种最近使用的(MRU)位图缓存。