毕加索图像加载回调

2022-08-31 22:19:40

我想使用毕加索在列表视图中加载三个连续的图像。使用毕加索提供的方法使这变得容易。但是,由于这些图像在不同的时间加载,因此当图像进入时,它会导致闪烁效果。例如,有时图像 2 出现在图像 1 之前,当图像 1 加载时,它会导致不自然的断断续续。如果我能将列表视图的可见性设置为不可见,直到所有图像都可以显示,那就更好了。但是,对于毕加索,我找不到任何回调方法可以在加载图像时发出信号。

有谁知道使用毕加索解决这种情况的方法吗?

谢谢


答案 1

该方法提供了第二个参数,该参数是对成功和失败的回调。您可以使用它来跟踪何时调用了所有三个,并同时对其可见性采取行动。.into

Javadoc: https://square.github.io/picasso/2.x/picasso/com/squareup/picasso/RequestCreator.html#into-android.widget.ImageView-com.squareup.picasso.Callback-


答案 2

下面是一个简单的例子,说明如何阻止毕加索图片加载回调:

Picasso.with(MainActivity.this)
            .load(imageUrl)
            .into(imageView, new com.squareup.picasso.Callback() {
                        @Override
                        public void onSuccess() {
                            //do smth when picture is loaded successfully

                        }

                        @Override
                        public void onError() {
                            //do smth when there is picture loading error
                        }
                    });

在毕加索的最新版本中,onError 将异常作为参数,并使用 get() 而不是 with()

Picasso.get()
            .load(imageUrl)
            .into(imageView, new com.squareup.picasso.Callback() {
                        @Override
                        public void onSuccess() {
                            //do smth when picture is loaded successfully

                        }

                        @Override
                        public void onError(Exception ex) {
                            //do smth when there is picture loading error
                        }
                    });

推荐