2 u012131702 u012131702 于 2014.12.14 16:56 提问

关于加载多量数据的问题,如何优化。求指点迷津

列如,我的一个Activity要加载n张图片,我知道了路径为一个list,
一下子加载完很不好吧?
1.有没有加载一半的做法?该如何做?
2.加载了图片用了,之后不用了,我如何让它释放?
3.是不是生成n个ImageView?

在这里提问个这样的问题,因为我想弄一个Image的视频。你想想,一个MP4就上1G。人家是如何加载的?

6个回答

zhangyawen1i
zhangyawen1i   2014.12.17 23:47
已采纳

图片缓存框架 universal image loader

1.有没有加载一半的做法?该如何做?

用的时候就加载

2.加载了图片用了,之后不用了,我如何让它释放?

自动处理 当内存缓存满的时候,按照你自己定义的策略 比如最近最少使用, FIFO等去释放之前的图片

3.是不是生成n个ImageView?

不用N个, 几个就行了复用就行了!

danielinbiti
danielinbiti   Ds   Rxr 2014.12.14 18:38

显示几张加载几张,加载完bitmap.recycle
如果图片大,可以对图片缩放

luowenlong860502
luowenlong860502   2014.12.15 08:33

开启一个线程,加载一张显示一张,显示完即可释放

lincyang
lincyang   Rxr 2014.12.15 13:29

你的activity上要同时显示几张图片有要求吗?
如果就显示一张,那么可以多缓存一张。当然了,加载的过程要开启一个新线程在后台来做。
如果要显示多张,可以考虑HorizontalListView。

sunmc1204953974
sunmc1204953974   2014.12.17 14:45

ListView和GridView都是自带动态加载的,不会OOM的,但是画廊控件是不行的,ListView和GridView都是内部有一个item重用机制,比如一个屏幕有8个item,item8出屏幕之后就会添加到可重用item的队列中,然后当下一个item出现,就会从可重用的item中拿出,重新加载图片和布局再显示,也就是说对象数就是这几个item,大大节省了内存,如果楼主要自己进行动态加载,也是这个原理,对象数目不变,变的只是对象上显示的内容。listView使用Holder的方法使得每次都不用再初始化布局,大大提高了效率和流畅度,关于ListVIew的使用和适配器的问题可以看我的博客:
http://blog.csdn.net/sunmc1204953974/article/details/38170331,共有6篇小教程,暑假写的

sunmc1204953974
sunmc1204953974   2014.12.17 14:45

ListView和GridView都是自带动态加载的,不会OOM的,但是画廊控件是不行的,ListView和GridView都是内部有一个item重用机制,比如一个屏幕有8个item,item8出屏幕之后就会添加到可重用item的队列中,然后当下一个item出现,就会从可重用的item中拿出,重新加载图片和布局再显示,也就是说对象数就是这几个item,大大节省了内存,如果楼主要自己进行动态加载,也是这个原理,对象数目不变,变的只是对象上显示的内容。listView使用Holder的方法使得每次都不用再初始化布局,大大提高了效率和流畅度,关于ListVIew的使用和适配器的问题可以看我的博客:
http://blog.csdn.net/sunmc1204953974/article/details/38170331,共有6篇小教程,暑假写的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
IOS UIWebView 优化
native体验好,但是每一次修正bug后都需要发版(特例除外);web开发快,维护成本低,体验上比native上差一点。web方面怎么减少与native的差距的呢?一个很重要的优化就是尽可能较少网络传输。下面看一下ios开发中怎么减少UIWebView的网络数据传输。 加载网页时需要加载页面以及页面相关的资源(js,css,img),一般来说页面会经常的变动,但是大部分js,css,img
如何用常规手段优化大数据量网页加载速度
如何用常规手段优化大数据量网页加载速度问题:网页内的大量筛选参数导致页面加载速度缓慢:优化后及示例页面链接解决方案:由后端生成html页面前端通过异步方式获取html格式数据,当页面加载完筛选结果后在呈现给用户方案详解
提高网格逼近精度的一种新方法
网格优化;散乱数据;反求工程,三角网格的相关优化与细化问题的研究
ThinkPHP操作MySQL删除大量数据的优化
我对有一个8万条数据的表进行了一次去重操作,其中有将近6万条的重复数据需要被删除。考虑到可能会产生对数据库的高IO操作,我选择进行删除算法的优化。
H5性能优化方面的探索
H5性能优化方面的探索 H5很重要,很重要,很重要,重要的事情必须重复多遍,H5的优点:跨平台、迭代快、开发体验好。缺点:加载慢,用户体验差。所以在接下来很长一段时间内我将会从H5的几个缺点发面去研究如何优化。 一、缓存问题及其解决办法经常遇到一个问题,H5页面由于缓存问题经常在H5发布新版本之后客户端App看不到最新的效果,之前由于杂七杂八的问题项目工期紧没好好研究,最近抽空研究了下缓存问题
关于搜索的优化
搜索问题的常见优化技巧  stodgers   【摘要】结合例题分析归纳了信息学竞赛中解决搜索问题所常用的思考方法与解题方法,从深度优先搜索和广度优先搜索两个方面探讨了提高程序效率的适用技巧。   【关键词】1信息学;2搜索顺序;3搜索对象;4Hash表 5剪枝。     在信息学竞赛中解决搜索问题通常采用两种方法进行,即:深度优先搜索和广度优先搜索。 一、深度优先搜索的优化技巧
优化页面加载数据
大家可能有过这样的体验, 在打开某个网页的时候, 页面加载速度非常慢, 这时候就会 有一点烦躁, 甚至会直接关掉网页, 进入其他的网页。 由此看来页面加载速度对网站的发展 是有很大影响的,我们必须进行改进,改善加载时间,提高用户体验度。宜昌百慕达科技的 工作人员将给大家简单介绍提高页面加载速度的方法。     第一、合并 JS 文件和 CSS 样式   如果把
大数据求TopN的优化算法
35匹马选前三名问题 有35匹马,要通过跑马(不借助其他工具)确定前三名,每次可以跑6匹,如何设计一个算法使得跑的次数最少?期望答案是7次,具体过程自己百度,但是这个算法可以作为优化大数据求TopN的算法。
Android RecycleView加载速度优化
Android RecycleView加载速度优化Android开发中,经常会碰到列表加载优化的问题。之前是ListView,现在经常用到RecycleView;不管怎么换控件,优化的思路始终是一样的,那就是将当前的资源尽量都放在用户需要的地方,仅加载用户需要看到的,用户不会看到的我们不需要加载。 思路有好几个,第一种是实现一个和RecycleView加载页面算法一样的队列存储结构,
应用开发进阶必经之路之性能优化
性能优化在一款产品的迭代过程中非常重要;程序实现了功能、还原产品原型只能保证程序能用,但如果要让用户更愿意使用,产品得好用。试想一下如果你开发的产品启动慢、页面显示需要长时间转圈加载、页面切换卡顿、黑白屏、用一会机器就发烫、耗内存、OOM、程序切换到后台后占用内存无法释放......,这些问题就像正在玩游戏时弹出提示框这类糟糕的用户体验一样让用户恼火,如果用户不得不使用你的产品,可能还会一直忍受;