ListView与Volley NetworkImageView闪烁

时间:2016-05-07 18:36:31

标签: android performance listview android-volley networkimageview

我有一个非常简单的listview和NetworkImageView

public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                LayoutInflater inflater = (LayoutInflater) getContext()
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView = inflater.inflate(R.layout.ladder_item, parent, false);
            }

            image0= (NetworkImageView) convertView.findViewById(R.id.ladder_item_layer_0_user_0_image);
            image0.setDefaultImageResId(R.drawable.test_random_size);
            image0.setImageUrl(obj.getImageUrl(), mLoader);

            return convertView;
        }

问题是滚动不像我想的那样平滑,它有点闪烁。如果我注释掉“setImageUrl”行,则滚动超级流畅,因此问题在于Volley NetworkImageView图像加载。我有什么办法可以减少它的闪烁吗?

我正在测试三星S5 mini。

非常感谢

2 个答案:

答案 0 :(得分:0)

在我看来,你有两种选择。

  1. 将图像加载程序更改为适合您特定情况的效果,例如毕加索或滑翔。
  2. 调整加载到imageview的位图大小,但我鼓励第一个选项,因为去年排球是如此。

答案 1 :(得分:0)

滚动不顺畅的原因可能是多种多样的。 Here这是一篇关于ListView应该遵循的最佳实践的非常好的文章。

在我的情况下,闪烁是由Volley图像加载引起的,解决方案是使用Glide进行图像加载。 Glide来自谷歌人,它非常强大和轻巧。现在滚动它非常流畅。

Here Picasso和Glide之间的比较。