图片

Android高效显示图片详解(一)

拥有回忆 提交于 2019-11-27 09:04:40
前提与解释: 安卓平台作为一款移动端的应用操作平台,其内存容量是十分有限的,内存资源是十分珍贵的,是无法与传统的桌面平台相比的,因此,在安卓平台下同样的图片操作与处理都要十分谨慎,否则你的程序可以 迅速地消耗可用内存的预算, 最终由于 OutOfMemory导致程序崩溃掉。以下有三个原因说明了我们为什么要谨慎: (1)安卓平台下对应用可使用的系统资源都做出了限制,标准安卓系统下,一个应用程序可用的最大内存为16M,一些第三方ROM 可能会上调这一限制,但是作为应用来说一定要控制自己的内存用量,这并不是可以无限制使用的。 (2)一张高分辨图片的内容耗用量是惊人的, 例如, Galaxy Nexus的 摄像头在拍摄2592X1936像素(5百万像素)。如果位图使用 的是配置 ARGB_8888 (默认的Android 2.3开始),那么此图像加载到内存占用约19MB的内存(2592 * 1936 * 4字节),直接就耗 尽了在某些设备上的每个应用程序的内存上限。 (3)安卓应用程序的一些控件经常需要几个位图一起加载。例如ListView,GridView,ViewPager等控件,并且在使用中还要快速 的滑动,要及时对图片进行更新与回收,更加增加了图片处理的难度。 解决办法: 一,如何去加载与显示大图: 其实,在安卓这样内存有限的平台上,是没有必要按照原始尺寸把一张大图完全加载进来的