在低内存设备中使用位图处理非常长的列表视图的最佳方法是什么?我滚动了一下后就崩溃了...我不想放松图像质量......我只考虑加载可用内存可能的项目数量,但这显然是一个糟糕的解决方案。我是否必须根据位置手动回收getView()中的位图...?这是处理这个问题的方法吗?
我的目标是API 7。
提前致谢。
P.S。位图是使用HTTP从远程服务器加载的。
答案 0 :(得分:0)
直接从Bitmap
加载SD Card
。请勿将其memory
保留在某种bitmap cache
中。
答案 1 :(得分:0)
您是否使用getView()
方法回收了自己的观点?
如果没有,请做下一件事:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(mInflater == null){
mInflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
View viewItem = convertView;
if(viewItem == null)
viewItem = mInflater.inflate("YOUR_LAYOUT", null);
//Continue with your code but use viewItem as the view of the list view line, that way you don't always create new instance of it. This is what helped me in the same problem.
编辑:查看下一篇文章,可能会对您有帮助。