Android Glide:onError回调
我正从毕加索转到格莱德。除了找不到获取错误回调的方法外,一切正常。我想检索一个位图,传递它并从中生成一个Android调色板。此外,虽然可以为加载调用提供errorDrawable,但在使用Android Glide:onError回调,android,android-glide,Android,Android Glide,我正从毕加索转到格莱德。除了找不到获取错误回调的方法外,一切正常。我想检索一个位图,传递它并从中生成一个Android调色板。此外,虽然可以为加载调用提供errorDrawable,但在使用SimpleTarget时,它不会显示在onResourceReady中 在毕加索,我是这样做的: target = new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picas
SimpleTarget
时,它不会显示在onResourceReady
中
在毕加索,我是这样做的:
target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
//handle Bitmap, generate Palette etc.
}
@Override
public void onBitmapFailed(final Drawable errorDrawable) {
// use errorDrawable to generate Palette
}
@Override
public void onPrepareLoad(final Drawable placeHolderDrawable) {
}
};
int width = (int) DisplayUnitsConverter.dpToPx(this, 120);
int height = (int) DisplayUnitsConverter.dpToPx(this, 40);
Picasso.with(this).load(config.getPathToLogo()).resize(width, height).error(errorDrawableId).into(target);
Glide.with(context)
.load(config.getPathToLogo())
.asBitmap()
.into(new SimpleTarget<Bitmap>(width, height) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
//handle Bitmap, generate Palette etc.
}
});
我的滑动代码如下所示:
target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
//handle Bitmap, generate Palette etc.
}
@Override
public void onBitmapFailed(final Drawable errorDrawable) {
// use errorDrawable to generate Palette
}
@Override
public void onPrepareLoad(final Drawable placeHolderDrawable) {
}
};
int width = (int) DisplayUnitsConverter.dpToPx(this, 120);
int height = (int) DisplayUnitsConverter.dpToPx(this, 40);
Picasso.with(this).load(config.getPathToLogo()).resize(width, height).error(errorDrawableId).into(target);
Glide.with(context)
.load(config.getPathToLogo())
.asBitmap()
.into(new SimpleTarget<Bitmap>(width, height) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
//handle Bitmap, generate Palette etc.
}
});
Glide.with(上下文)
.load(config.getPathToLogo())
.asBitmap()
.into(新的SimpleTarget(宽度、高度){
@凌驾
public void onResourceReady(位图资源、GlideAnimation){
//处理位图,生成调色板等。
}
});
谢谢。您使用的是实现接口
目标的SimpleTarget
,该接口定义了方法onLoadFailed
,因此您只需执行以下操作:
Glide.with(context)
.load(config.getPathToLogo())
.asBitmap()
.into(new SimpleTarget<Bitmap>(width, height) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
//handle Bitmap, generate Palette etc.
}
@Override
public void onLoadFailed(Exception e, Drawable errorDrawable) {
// Do something.
}
});
Glide.with(上下文)
.load(config.getPathToLogo())
.asBitmap()
.into(新的SimpleTarget(宽度、高度){
@凌驾
public void onResourceReady(位图资源、GlideAnimation){
//处理位图,生成调色板等。
}
@凌驾
public void onload失败(异常e,可提取错误可提取){
//做点什么。
}
});
对于每个有相同问题的人,您需要使用侦听器方法。例如:
Glide.with(activity)
.load(getPhoto().getUrl())
.apply(
new RequestOptions()
.error(R.drawable.icon_placeholder)
.centerCrop()
)
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
//on load failed
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
//on load success
return false;
}
})
.transition(withCrossFade())
.into(view);
Glide.with(活动)
.load(getPhoto().getUrl())
.申请(
新的请求选项()
.错误(R.drawable.icon\u占位符)
.centerCrop()
)
.listener(新的RequestListener(){
@凌驾
public boolean onload失败(@Nullable glide,对象模型,目标,boolean isFirstResource){
//加载失败
返回false;
}
@凌驾
公共布尔onResourceReady(可绘制资源、对象模型、目标、数据源数据源、布尔isFirstResource){
//加载成功
返回false;
}
})
.transition(使用CrossFade())
.进入(视野);
这个解释应该成为默认git自述部分的一部分,因为“onLoadFailed”是一个基本的错误处理。谢谢也许你用的是4.0.0-RC0?试试3.8.0INTEAD。