java - 实现 getStreamFromPotherSource() 来处理异常

标签 java android universal-image-loader

我正在使用 Android Universal Image loader在我目前正在开发的新闻应用程序中。我正在使用NewsAPI获取新闻。从网站解析 JSON 后。我使用自定义适配器填充 ListView ,并使用通用图像加载器来获取背景图像。但对于某些图片,UIL 默认不支持 schema(protocol) [null]。您应该自己实现此支持 (BaseImageDownloader.getStreamFromOtherSource(...)) 会显示异常。

我认为在某些图像中,URI 不是库期望的格式。

所以我的问题是如何填充图像的位置,这给了我可绘制文件夹中的图片的错误。 (404图片表示图片无法下载)

我找到了应该放置代码的位置。

protected InputStream getStreamFromOtherSource(String imageUri, Object extra) throws IOException { throw new UnsupportedOperationException(String.format("UIL 默认情况下不支持方案(协议(protocol)) [%s]。您应该自己实现此支持 (BaseImageDownloader.getStreamFromOtherSource(...))", new Object[]{imageUri} )); }

我需要知道如果图像不可下载,我应该在此处放置什么样的代码来从我的可绘制文件中放置 404 图像。

最佳答案

兄弟..你可以使用Piccasso安卓图像库。它可以解决您的问题。

示例代码:

if(!image.equals("default")){


                Picasso.with(Profile.this).load(image).networkPolicy(NetworkPolicy.OFFLINE)
                        .placeholder(R.drawable.default).into(mDisplayImage, new Callback() {
                    @Override
                    public void onSuccess() {

                    }

                    @Override
                    public void onError() {
                        Picasso.with(Profile.this).load(image).placeholder(R.drawable.default).into(mDisplayImage);

                    }
                });

}

这里它可以替换默认的(即)404 发现图像,而错误条件

还有一个小建议,您可以使用Easy News用于从 NewsAPI 简单检索新闻的库。这里我们不需要解析JSON。它通过单个方法调用给出数据

关于java - 实现 getStreamFromPotherSource() 来处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49966853/

相关文章:

android - Universal Image Loader UIL nostra 内存不足错误

java - 在java中使用DataBuffer.TYPE_FLOAT或DataBuffer.TYPE_DOUBLE写出BMP文件

android - 如何在android中处理首选项的点击事件

java - Java 会自动异步调用这些方法吗?

android - 如何启动和 App Chooser

java - Android MapView Map V2 在 Fragment 中

android - 使用 UniversalImageDownloader 的 ListView 滚动不流畅

android - 是否可以用displayImage()设置ImageSize?

java - 为了安全起见,将 new String(char[]) 作为密码参数传递给只接受字符串作为参数的方法是否安全?

java - 编译代码时出现非法的起始表达式错误