对应用于 Glide 的占位符执行某些操作?

问题描述 投票:0回答:4

我可以知道在loadingplaceholderGlide时是否可以使用任何方法来执行某些操作。这里我使用

firebase
setBitmap
图像 url 设置为
Glide
方法。如果资源可用,
setBitmap
方法将运行。如果它不可用,我想运行另一种方法。有类似
onLoadingPlaceholder()
之类的方法吗?

 Glide.with(getApplicationContext()).asBitmap()
                            .load(dataSnapshot.child("imageUrl").getValue(String.class))
                            .apply(new RequestOptions()
                                    .diskCacheStrategy(DiskCacheStrategy.ALL)
                                    .placeholder(R.drawable.image)
                                    .error(R.drawable.image))
                            .into(new CustomTarget<Bitmap>() {
                                @Override
                                public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
                                    Log.d(TAG, "onResourceReady: ");
                                    setBitmap(resource);
                                }

                                @Override
                                public void onLoadCleared(@Nullable Drawable placeholder) {}
                            });

我需要做的是,在占位符加载时设置一个位图。所以当

firebase
图像不可用时,我需要设置默认图像。

android firebase android-glide placeholder
4个回答
2
投票

您可以像这样使用

fallback

Glide.with(fragment)
  .load(url)
  .fallback(R.drawable.fallback)
  .into(view);

如果

url
null
将会显示。

以防万一

error
处理程序:

Glide.with(fragment)
  .load(url)
  .error(R.drawable.error)
  .into(view);

2
投票

终于,我找到了答案。但这不是

onLoadPlaceholder()
之类的东西,这对我有用!

String imageUrl = dataSnapshot.child("imageUrl").getValue(String.class);
if(imageUrl==null){
    setBitmap(resource);
}

Glide.with(getApplicationContext()).asBitmap()
        .load(imageUrl)
        .apply(new RequestOptions()
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .placeholder(R.drawable.contatctmani)
                .error(R.drawable.contatctmani))
        .into(new CustomTarget<Bitmap>() {
            @Override
            public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
                setBitmap(resource);
            }

            @Override
            public void onLoadCleared(@Nullable Drawable placeholder) {}
        });

1
投票

尝试添加

            @Override
            public void onLoadStarted(@NonNull placeholder Drawable) {
               // here you call another method, e.g.
               imageView.setImageDrawable(placeholder);
            }

            @Override
            public void onLoadFailed(@NonNull errorDrawable: Drawable) {
               // here you call another method, e.g.
               imageView.setImageDrawable(errorDrawable);
            }

进入你的区块。


0
投票
.placeholder(R.drawable.placeholder)

你可以这样使用:

Glide.with(context)
        .load(url)
        .placeholder(R.drawable.placeholder)
        .into(binding.image)
© www.soinside.com 2019 - 2024. All rights reserved.