高效率地显示位图(总课程绪论)Display Bitmaps Efficiently——翻译自developer.android.com Training

来源:互联网 发布:时时彩组三组六软件 编辑:程序博客网 时间:2024/06/04 19:24


这节课学习如何使用典型的办法来运行和加载Bimap对象,使得我们的UI组件保持相应并且不会内存溢出。如果你不小心,位图会很快就消耗掉app预算的内存,导致可怕的异常:java.lang.OutofMemoryError:bitmap size exceeds VM budget.

为什么在android应用中加载图片需要一些技巧,下面列举了一些原因:

- 移动设备通常的可以资源都十分有限。android设备给每一个应用的内存可能只有16MB大小。android Compatibility Definition Document(CDD),章节3.7虚拟机兼容性中给出了不同种屏幕大小和分辨率每个应用需要的最小内存。应用应该在这个内存的限制下进行优化。但是,要记住很多的设备都会要求一个更高的限制。

- 位图是十分占用内存的,特别是对于照片这种丰富的图像。例如,GalaxyNexus的相机会拍摄出2596*1936个像素(五百万像素)的图像。如果位图的格式使用ARGB_8888(自动android 2.3以后的默认的格式),加载这样的图片到内存中需要大概19MB的内存(2592*1936*4个byte),立即就超出了每一个app的内存的限制。

-android appUI对于位图立即加载的频繁请求。

例如ListView ,GridView,和ViewPager通常一次都会包含多个显示位图的组件,以及已经准备好,随着手势一划动马上就会加载出来的图片。





















0 0
原创粉丝点击