使用Picasso从URL加载图片到ImageView,避免ImageView出现白色闪烁

6
我正在使用Square的Picasso库将URL字符串加载到ImageView中。我使用定时器多次调用此功能以更改ImageView图像。
然而,在第一次加载URL内容时,每当ImageView更新时,它会闪烁白色。
在Picasso缓存内容后,ImageView会在没有闪烁的情况下更改。
如何停止ImageView闪烁白色?
Picasso.with(getApplicationContext()).load(currentUrl).into(img, new Callback() {
                    @Override
                    public void onSuccess() {
                        mProgress.dismiss();
                    }

                    @Override
                    public void onError() {
                        mProgress.dismiss();
                    }
                });
2个回答

22

我遇到了同样的问题,通过添加noPlaceHolder指令来解决:

Picasso.with(getApplicationContext())
    .load(currentUrl)
    .noPlaceholder()
    .into(img, new Callback() {
                    @Override
                    public void onSuccess() {
                        mProgress.dismiss();
                    }

                    @Override
                    public void onError() {
                        mProgress.dismiss();
                    }
                });

默认情况下,Picasso会清除目标ImageView以确保在视图被回收的情况下的正常行为。这种方法将防止该行为并保留已经设置的任何图片。

Picasso文档


0
ImageView iv = findViewById(R.id.iv);
Picass().get()
.load("Image Url")
.noPlaceHolder()
.into(iv);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接