最近写的一个应用涉及到使用GridView显示图片,当使用BaseAdapter传统的的实现时,在真机上快速滚动时会出现OOM情况。
一个临时性的解决方案就是改动图片尺寸,减小内存。这种方法简单却不安全。如果图片够多,也存在依然OOM的情况。
一个有效的方法就是使用异步加载。
获取应用程序最大可用内存:
int maxMemory = (int) Runtime.getRuntime().maxMemory();
还可以使用convertView 回收视图,结合使用ViewHolder模式,提高效率。
时间: 2024-08-28 14:04:37