Android GridView加载大量图片时出现OOM情况

最近写的一个应用涉及到使用GridView显示图片,当使用BaseAdapter传统的的实现时,在真机上快速滚动时会出现OOM情况。

一个临时性的解决方案就是改动图片尺寸,减小内存。这种方法简单却不安全。如果图片够多,也存在依然OOM的情况。

一个有效的方法就是使用异步加载。

获取应用程序最大可用内存:

 int maxMemory = (int) Runtime.getRuntime().maxMemory();  

还可以使用convertView 回收视图,结合使用ViewHolder模式,提高效率。

时间: 2024-08-28 14:04:37

Android GridView加载大量图片时出现OOM情况的相关文章

GridView加载大量图片卡顿问题

1  在异步加载之前的代码的和普通加载代码一样,只需要在GirdView的Adapter的public View getView(int position, View convertView, ViewGroupparent)方法使用异步加载的方式返回ImageView. 2  如果能把加载过的图片给缓存起来,而不用每次都从sd卡上读取,这样效率应该会提高不少.所以可以先建一个缓存类,MemoryCache,为了能尽可能缓存,又尽可能的不抛出OOM的异常,可以使用SoftReference<Bi

android 图片加载优化,避免oom问题产生

1,及时回收bitmap,在activity的onstop()和onDestory()里面调用如下代码进行bitmap的回收: // 先判断是否已经回收 if(bitmap != null && !bitmap.isRecycled()){ // 回收并且置为null bitmap.recycle(); bitmap = null; } System.gc(); 2,对oom异常的捕获:出现异常不能让程序就那么崩掉吧,所以对程序中中设计bitmap的操作都要检测oom异常进而进行处理: B

Android 高效加载大图片避免OOM

参考链接:http://blog.csdn.net/coderinchina/article/details/40964205 我们项目中经常会加载图片,有时候如果加载图片过多的话,小则导致程序很卡,重则OOM导致App挂了,今天翻译https://developer.android.com/training/displaying-bitmaps/index.html,学习Google高效加载大图片的方法. 图片有各种形状和大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小.比如说系统

Android webView 加载网页时,使用本地图片替换网页内的图片

============问题描述============ RT,本质目的是阻止网页图片加载,将图片放在本地,然后在app中替换,以加快反应速度. 以前提过这个问题,没能解决,因为3.0以上才提供了替换网页资源的接口(WebResourceResponse),3.0以下没有专门的接口,想过使用get将网页取下来存为String然后替换,却发现不是所有的网页都能使用get取到(很多页面都报异常,包括百度中的某些链接),研究过一段时间,认为不能实现,放弃了. 今天突然发现一款游戏,叫巴哈姆特之怒,惊讶

android GridView加载图片,一张张显示

passport.baidu.com/?business&un=%E9%B8%A1%E8%A5%BF%E5%B0%8F%E5%A7%90%E5%8F%AB%E5%8C%85%E5%A4%9C#0 passport.baidu.com/?business&un=%E9%B9%A4%E5%B2%97%E5%B0%8F%E5%A7%90%5F%E6%89%BE%E6%9C%89#0 passport.baidu.com/?business&un=%E9%B8%A1%E8%A5%BF%E5

Android图片加载库:最全面的Picasso讲解

前言 上文已经对当今 Android主流的图片加载库 进行了全面介绍 & 对比 如果你还没阅读,我建议你先移步这里阅读 今天我们来学习其中一个Android主流的图片加载库的使用 - Picasso 目录 1. 简介 介绍:Picasso,可译为"毕加索",是Android中一个图片加载开源库 大概是因为其使用使用方法简单.优雅所以这样取名 主要作用:实现图片加载 2. 功能特点 2.1 功能列表 从上面可以看出,Picasso不仅实现了图片异步加载的功能,还解决了Androi

Android高效加载大图、多图解决方案,有效避免程序OOM(转)

本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/training/displaying-bitmaps/index.html 高效加载大图片 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状.不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小.比如说系统图片库里展示的图片大都是用手机摄像头拍出来的,这些图片的分辨率会比我们手机屏幕的分辨

Android 高效加载大图,多图解决方案,有效避免程序OOM

高效加载大图片 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状.不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小.比如说系统图片库里展示的图片大都是用手机摄像头拍出来的,这些图片的分辨率会比我们手机屏幕的分辨率高得多.大家应该知道,我们编写的应用程序都是有一定内存限制的,程序占用了过高的内存就容易出现OOM(OutOfMemory)异常.我们可以通过下面的代码看出每个应用程序最高可用内存是多少. [java] view plaincopy in

android加载大量图片内存溢出的三种方法

android加载大量图片内存溢出的三种解决办法 方法一:  在从网络或本地加载图片的时候,只加载缩略图. /** * 按照路径加载图片 * @param path 图片资源的存放路径 * @param scalSize 缩小的倍数 * @return */ public static Bitmap loadResBitmap(String path, int scalSize) { BitmapFactory.Options options = new BitmapFactory.Option