我可以知道在loadingplaceholder到Glide时是否可以使用任何方法来执行某些操作。这里我使用
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
图像不可用时,我需要设置默认图像。
您可以像这样使用
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);
终于,我找到了答案。但这不是
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) {}
});
尝试添加
@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);
}
进入你的区块。
.placeholder(R.drawable.placeholder)
你可以这样使用:
Glide.with(context)
.load(url)
.placeholder(R.drawable.placeholder)
.into(binding.image)