关于ZAKER 融媒体解决方案 合作 加入

Android:“ java-lang-outofmemoryerror-bitmap-size-ex.

CocoaChina 10-23

在我的应用程序中 , 我必须使用 500 × 500 px 的小图像显示大约 10000 x 5000 的图像 . 即 ; 通过平铺图像 .

为了将所有图像平铺到一个图像 , 最初是从 sdcard 收集所有位图 , 以便在画布上绘制 .

但是在使用 BitmapFactory.decodeFile ( path ) 从外部存储加载图像时 , 我遇到了错误java-lang-outofmemoryerror-bitmap-size-exceeds-vm-budget-android

谁能避免这种错误 , 给我一个如何将许多图像平铺为一个图像的想法 .

感谢您 ,

SRINIVAS

最佳答案

> 切勿加载不需要的瓷砖 . " 从 sdcard 收集所有位图 " 表明您正在解压缩可能需要的每个图像 , 这是错误的方法 .

> 使用较小的瓷砖 . 256 × 256 是一个不错的尺寸 .

> 将它们加载为 Config.RGB565 ( 即 16bpp ) .

> 定期 recycle ( ) 不需要的位图 .

基本上 , 您需要实现某种最近使用 ( MRU ) 的位图缓存 .

以上内容由"CocoaChina"上传发布 查看原文

觉得文章不错,微信扫描分享好友

扫码分享