您的位置:首页 > 其它

Displaying Bitmaps Efficiently

2012-10-15 21:03 316 查看
原文链接:http://docs.eoeandroid.com/training/displaying-bitmaps/index.html

作者:liuzihe1979

完成时间:2012年9月7日

这个类包括了一些适用于处理和加载位图实体的通用技术,在某种程度上保持你的用户接口(UI)组件有回应,避免超过你应用的资源限制。如果你不注意,位图就会迅速地消耗你的可利用内存,以致于于严重的异常而导致应用的崩溃:

java.lang.OutofMemoryError: bitmap size exceeds VM budget.

以下是在你的android应用程序中加载位图时会遇到的一些棘手问题:

移动设备通常都只有有限的系统资源。Android设备可以为单个应用分配小到16MB大小的内存。Android兼容性定义文档(CDD),3.7章节,虚拟机兼容性给出了不同尺寸和密度的手机屏幕下应用程序所需的最小内存。在最小的内存限制下应用程序应当进行优化处理后运行。然而,请记住许多设备都 被配备了更高的内存限制。

位图占据了大量的内存空间,特别是像图册这种富图像的应用。例如,Galaxy Nexus上的照相机所照的图片最大达到2592x1936像素(5万像素)。如果位图的配置使用ARGB_8888(Android 2.3的默认配置)那么加载这个图像到内存需要19MB的存储空间(2592*1936*4 bytes),直接超过了许多设备上的单应用限制。

Android应用UI通常需要许多图片需要马上被加载出来。像ListView,GridView和ViewPager等包含了许多位图的组建通常要求在手指滑动后马上就要在屏幕上马上显示出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: