Oha*_*dza 4 android listview out-of-memory android-image
我正在尝试创建一个看起来像Instagram图片Feed或Facebook的Android ListView.在加载一些图像(仅少数几个)后,我的Galaxy Nexus出现了Out of Memory Exception.我缩放了它们,但是,图像的数量并不固定,理论上可以是无限的.在Facebook和Instagram上,他们加载了大量图像和其他数据,效果很好.
你怎么看?我能用原生Android编码实现这些表演吗?如果我要创建一个HTML5提要(如Facebook和Instagram),我会避免内存问题吗?
我需要做很多工作来处理来自服务器的图像内存,这让我觉得很奇怪.如果这是唯一的解决方案,那么在本机ListView中管理数百张图片的方法是什么?
我会感激任何意见!谢谢.
不要一次将它们全部加载到内存中,只需将需要显示的图像加载到Bitmap对象中; 并确保您加载的图像只是您需要显示的尺寸(不要完全加载1900x1200图像以显示300x200缩略图).您的应用程序的堆大小约为30MB(取决于设备,但这是一个很好的经验法则),并且一旦加载,Bitmap将占用内存中的Width*Height*4个字节.
一种方法是在下载图像时将图像缓存到磁盘上,这样它们就不必在内存中,并且在下载之前总是检查缓存中的图像.您还可以使用缓存将少量图像加载到需要在列表中显示的内存中.
您还可以使用这些BitmapFactory.Options.inSampleSize选项在加载图像时减小图像的大小,而不是加载整个图像,然后创建一个小的副本,这会浪费时间和内存.
HTH
请查看:http://developer.android.com/training/displaying-bitmaps/index.html以获取帮助
| 归档时间: |
|
| 查看次数: |
4290 次 |
| 最近记录: |