通过GridView的getLastVisiblePosition()和getFirstVisiblePosition()方法确认当前GridView控件中将会显示Dataset中的数据范围,在该范围之内的图片应该是已经解码过的,而不在该区间中的图片,可以在适当的时候使用recycle()方法回收。实现方式可以使用HashMap来存储对应的ID和Bitmap
HashMap<Integer, Bitmap> picMap,Integer的值对应path的ArrayList即可,系统每次回调getView()的时候,通过上面的两个方法,确定需要显示的ID范围,遍历该范围中的ID,从picMap中查询,如果对应ID的Bitmap为空的话,就通过path的ArrayList中对应的文件名解码图像,如果不为空,那么就直接设置即可。而不在该区间的图片最好是调用recycle()回收,要不就很有可能出现OOM错误。
至于预加载的意思就是每次得到需要显示的范围之后,再扩大一定的范围,使得用户在快速切换图片时,不至于出现因为解码而感觉到的停滞感。
建议扩大的范围为起始位置和终止位置分别往前和往后扩大当前GridView一行显示缩略图的个数,例如已知将显示8~23号图片,GridView每行显示4个缩略图,那么将其范围扩大到4~27,保证处于该区间的ID对应的图片解码成功,并设置给ImageView,而不在该区间内的图片尽量使用recycle()方法回收。不过如果楼主的应用中不会碰到特别多的图片的话,建议不要把问题复杂化。当然如果有需求的话,这样做会保证程序不出错,只是稍微复杂了一些。
分享到:
相关推荐
软件开发网在此之前给大家介绍过图片加载框架Glide的基本用法介绍,大家可以先参考一下,本篇内容更加深入的分析了Glide获取图片Path、Bitmap用法,以及实现的代码分析。 1. 获取Bitmap: 1)在图片下载缓存好之后...
赠送jar包:RoaringBitmap-0.7.45.jar; 赠送原API文档:RoaringBitmap-0.7.45-javadoc.jar; 赠送源代码:RoaringBitmap-0.7.45-sources.jar; 赠送Maven依赖信息文件:RoaringBitmap-0.7.45.pom; 包含翻译后的API...
处理bitmap内存溢出问题
机器视觉技术必备,从位图到halcon图像,bitmap图像转为halcon图像,bitmap to Hobject
改用原始图像数据流回调函数RegisterImageStreamCallback进行抓图 但回调函数帧为YUV420格式 需要转成Bitmap才用用于显示及本地查看 在网上找了好多都是基于R Y+1 4075 V 128 G Y 0 3455 U 128 – 0 7169 V 128 B Y+...
android bitmap outofMemory 用来解决android中常见的bitmap outOfMemory
赠送jar包:RoaringBitmap-0.7.45.jar; 赠送原API文档:RoaringBitmap-0.7.45-javadoc.jar; 赠送源代码:RoaringBitmap-0.7.45-sources.jar; 赠送Maven依赖信息文件:RoaringBitmap-0.7.45.pom; 包含翻译后的API...
C#语言下,官方好像没有提供直接的方式把Bitmap转为Mat,但是可以使用我的这个方式转变格式
Halcon_Bitmap转换方法 写的文档 开发笔记
一个在VC中将Bitmap转换为Byte[]的小例子。
将图片由bitmap类型转换为stream类型再转换为byte[]类型,然后再还原
c#.net Bitmap类的基本使用方法
赠送jar包:RoaringBitmap-0.5.11.jar; 赠送原API文档:RoaringBitmap-0.5.11-javadoc.jar; 赠送源代码:RoaringBitmap-0.5.11-sources.jar; 赠送Maven依赖信息文件:RoaringBitmap-0.5.11.pom; 包含翻译后的API...
主要介绍了 Android canvas drawBitmap方法详解及实例的相关资料,需要的朋友可以参考下
海康SDK采图 生成BitMap类型的图片
android中对Bitmap图片设置任意角为圆角
主要对于应用NI Vision和C#的,bitmap和Ni图像之间的一个转换(彩色)
博客配套文件,解决常见的Bitmap转HBITMAP背景变浅,HBITMAP转Bitmap背景变黑的问题,并演示了如何输出HBITMAP和Bitmap的每行像素,所有代码封装成了类,可以直接在生产环境中使用。
BMP2H264 Bitmap图像转换为H264