文档章节

位图管理、图片下载缓存、管理图片内存(一) 高效展示图片系列概述

k
 kim366
发布于 2016/05/13 19:36
字数 618
阅读 7
收藏 0

        无意间发现,官方文档中居然有一组完整的实例,详细介绍了android对于图片加载和缓存的解决方法。之前在项目中也用到了图片的批量下载,而且也是像这里的实例一样在GridView或ListView中展示,处理过程也是通过双缓存的方式提高效率,确保应用的UI流畅和内存占用率。看完之后才感觉之前使用的方式还有很多可以改进的地方,同时也为这么优秀的指导文档鲜有人知感到惋惜。所以在此翻译学习,加以巩固。根据文档介绍流程,这里作为一个系列。

        概述

        学习如何通过一种能够保持UI组件高效响应并避免内存溢出的方式,处理并使用位图对象。如果开发者不注意,位图可能会很快消耗掉应用可获得的预分配内存,从而因为内存溢出而导致应用崩溃。下面是一些导致位图下载问题复杂而棘手的原因分析:

        1. 移动设备系统资源有限。android设备中单个应用可能获得只有16M的内存。Android Compatibility Definition Document (CDD), Section 3.7. Virtual Machine Compatibility文档中给出了在不同屏幕尺寸和像素下,应用可以获得的最小内存。应用应该优化到在此内存限度下进行操作。不过许多设备可能设置了更高的单个应用内存占用限度。

        2. 位图对象会占用很大的内存,尤其是对于效果逼真的图片。比如,Galaxy Nexus下的相机可以拍出2592*1936像素(5百万)的照片。如果一个位图配置使用ARGB_888(android2.3之前默认的)格式,那么下载这样一张图片会占用19M内存(2592*1936*4字节),在某些设备上很快就会达到单个应用的内存限制。

        3. android应用的UI通常会同时请求下载多张位图。比如说ListView,和GridView组件或ViewPager, 通常会存在潜在的图片下载,当用户手指滑动后在屏幕上同时展示多张图片。

        先推荐一种很不错的方式:

        http://www.xycoding.com/articles/2014/07/29/android-async-images-download/

        http://download.csdn.net/download/q541959443/7692557

        

        

本文转载自:http://blog.csdn.net/oyangyujun/article/details/41024475

共有 人打赏支持
k
粉丝 1
博文 129
码字总数 0
作品 0
朝阳
私信 提问
【Google官方教程】前言:高效的Bitmap显示

转载声明:Ryan的博客文章欢迎您的转载,但在转载的同时,请注明文章的来源出处,不胜感激! :-) http://my.oschina.net/ryanhoo/blog/88153 译者:Ryan Hoo 来源:https://developer.andro...

RyanHoo
2012/11/09
0
11
Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类)

最新内容建议直接访问原文:Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类) 介绍总结的一些android公共库,包含缓存(图片缓存、预取缓存)、公共View(下拉及底部...

Trinea
2013/07/28
861
1
总结的一些android公共库

最新最准确内容建议直接访问原文:Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类) 介绍总结的一些android公共库,包含缓存(图片缓存、预取缓存)、公共View(下拉...

Trinea
2012/07/16
0
1
FastImageCache 架构分析

原文 文章介绍 本文章注重分析 FastImageCache 这个 Github 第三方图片IO库的架构和部分分析等等。 对于 FastImageCache 很多同学或多或少都会听过,但是网上很多人说这是一个网络图片库,我...

葱神大大
2018/06/22
0
0
Android图片缓存之初识Glide

前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架。技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自...

丁佳辉
2017/10/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux Wireshark普通用户启动使用方案

当系统安装好Wireshark后请正常启动是否可以进行正常使用,如果不行请参考下列指导 向系统添加一个用户组 sudo groupadd wireshark //如提示此组存在可跳过 将指定用户添加到这个组中 sudo...

CHONGCHEN
今天
2
0
CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
2
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
4
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
4
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部