firebase 如果glide在andorid中出错了怎么办

kninwzqo  于 2023-05-01  发布在  其他
关注(0)|答案(3)|浏览(91)

我一直在想我正在开发一个提供一种方式来宣传他们的产品,但我很困惑,如果glide在recyclerview的某些位置给出了错误,我应该怎么做,如何管理?我应该删除recyclerview项目在该位置或做其他事情,因为它降低了我的应用程序的质量?还有一件事,为什么流行的应用程序前:Facebook,Instagram没有得到这样的错误,因为我从来没有发现任何错误的图像在他们的recyclerview他们是如何做到的?
我的后端是firebase;

kb5ga3dv

kb5ga3dv1#

如果Glide无法在特定位置加载图像。您可以使用占位符或错误来管理它。
参见文档:https://bumptech.github.io/glide/doc/placeholders.html
我的Facebook应用程序有时无法加载图像,因为我的互联网连接太慢,它变得空白。

a14dhokn

a14dhokn2#

Facebook和其他应用程序有按钮重试,当错误来.您可以在RecyclerViewbindViewHolder方法和ListViewgetView方法中执行如下操作:

Glide.with(mContext)
            .load(arrayList.get(position).getImageUrl())
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .into(new SimpleTarget<GlideDrawable>() {
                @Override
                public void onResourceReady(GlideDrawable resource, GlideAnimation<super GlideDrawable> glideAnimation) {
                    if (holder.mimageView.getVisibility() == View.GONE)
                        holder.mimageView.setVisibility(View.VISIBLE);
                    if (holder.btnRetry.getVisibility() == View.VISIBLE)
                        holder.btnRetry.setVisibility(View.GONE);
                    holder.mimageView.setImageDrawable(resource);
                }

                @Override
                public void onLoadFailed(Exception e, Drawable errorDrawable) {
                    super.onLoadFailed(e, errorDrawable);
                    if (holder.mimageView.getVisibility() == View.VISIBLE)
                        holder.mimageView.setVisibility(View.GONE);
                    if (holder.btnRetry.getVisibility() == View.GONE)
                        holder.btnRetry.setVisibility(View.VISIBLE);
                }
            });

现在在btnRetry上单击,您可以再次使用上述滑翔获取图像。

m528fe3b

m528fe3b3#

如果Glide在加载图像时遇到错误,它可以抛出异常。在这种情况下,您可以捕获异常并适当地处理它。
一种常见的方法是显示占位符图像或默认图像来代替失败的图像。您可以通过在Glide请求中设置占位符或回退图像来完成此操作。例如:

Glide.with(context)
     .load(imageUrl)
     .placeholder(R.drawable.placeholder_image)
     .error(R.drawable.error_image)
     .into(imageView);

在上面的代码中,R.placeholder_image是在加载实际图像时显示的图像,而R。error_image是图像加载失败时将显示的图像。
如果您使用Glide和RecyclerView,您可以使用相同的方法来处理错误。当图像加载失败时,您可以在受影响的RecyclerView项目的ImageView中显示占位符或回退图像。
至于为什么像Facebook和Instagram这样的流行应用程序不会在其RecyclerViews中显示错误图像,这可能是因为它们有一个强大的错误处理机制。它们可能会捕获和处理异常,或者它们可能会使用其他技术来确保图像始终被成功加载。他们也可能有一个经验丰富的开发人员团队,他们已经优化了代码的性能和可靠性。

相关问题