0

在低内存设备中处理带有位图的非常长的列表视图的最佳方法是什么?滚动一点后我崩溃了...我不想降低图像质量...我正在考虑仅加载可用内存可能的项目数量,但这显然是一个糟糕的解决方案. 我是否必须根据位置在 getView() 中手动回收位图...?这是处理这个问题的方法吗?

我的目标是 API 7。

提前致谢。

PS 位图是使用 HTTP 从远程服务器加载的。

4

2 回答 2

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.

编辑:检查下一篇文章,也许它可以帮助你。

如何在 ListView 中延迟加载图像

多线程性能

于 2012-07-15T10:36:51.157 回答
0

直接BitmapSD Card. 不要将其保存memory在某种bitmap cache.

于 2012-07-15T10:06:10.083 回答