android - 网络连接关闭时,适用于 Android 的 Picasso 库是否处理图像加载?

标签 android picasso image-loading offline-mode

我正在开发一个使用 Picasso library 的应用程序用于在我的 ViewPager 和其他 ImageViews 中加载图像。所以我想知道如果网络连接关闭会发生什么。该库是自行处理还是我必须在将图像加载到 View 之前检查网络连接?

我的代码:

Picasso picasso = Picasso.with(getActivity());
        picasso.setDebugging(true);
        picasso.load(downloadPath+imgDetailPhoto)
                .placeholder(R.drawable.no_image)
                .error(android.R.drawable.stat_notify_error)
                .into(eventImage, new Callback() {
                    @Override
                    public void onSuccess() {
                         Log.d("Success...", "picasso loaded successfully");
                    }

                    @Override
                    public void onError() {
                        Log.d("Error...", "picasso load error");

                    }
                });

最佳答案

使用下面的代码 Picasso 缓存图像以供离线使用。

Picasso.with(this)
        .load(downloadPath+imgDetailPhoto)
        .placeholder(R.drawable.no_image)
        .error(android.R.drawable.stat_notify_error)
        .networkPolicy(NetworkPolicy.OFFLINE)//use this for offline support
        .into(eventImage);

以上代码在删除缓存时不起作用。因此 Picasso 无法从缓存中找到图像。如果无法从缓存中获取图像,我们将处理在线获取图像并显示它。我们使用以下代码实现:

Picasso.with(getActivity())
.load(downloadPath+imgDetailPhoto)
.placeholder(R.drawable.no_image)
.error(android.R.drawable.stat_notify_error)
.networkPolicy(NetworkPolicy.OFFLINE)//user this for offline support
.into(eventImage, new Callback() {
@Override
public void onSuccess() {

}

@Override
public void onError() {
          Picasso.with(getActivity())
.load(downloadPath+imgDetailPhoto)
.placeholder(R.drawable.no_image)
.error(android.R.drawable.stat_notify_error)
.networkPolicy(NetworkPolicy.OFFLINE)//user this for offline support
.into(eventImage, new Callback() {
        @Override
        public void onSuccess() {

        }

        @Override
        public void onError() {
           //get error if image not loaded
        }
    });
}
});

关于android - 网络连接关闭时,适用于 Android 的 Picasso 库是否处理图像加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33885561/

相关文章:

android - Gradle 任务不在 Android Studio 中执行

android - Java : Illegal type 'void' in ASyncTask

Android 内部测试与我的设备不兼容

android - Image Url 存储在相机和图库 Intent 的 Realm 中,但在 ListView 中看不到

android - 将相同的图库图像加载到两个不同的 Activity fragment 中 Android Picasso

java - 为 Zebra 设备开发 Android 应用程序

android - 使用 picasso 库android找不到带有()的符号方法

Android Volley ImageLoader - BitmapLruCache 参数?

javascript - 从下到上加载图像?

android - Flutter CachedNetworkImage 不适用于从 playstore 下载的 App,卡在占位符上