У меня есть набор изображений, загружаемых через Glide.Есть ли способ заставить gif загрузить с Glide, чтобы быть не анимированным
NSFW размыты с использованием растрового преобразования скольжения (wasabeef), однако некоторые из них могут быть анимированными gif, и в этом случае первый кадр отображается размытым, а затем анимация начинает зацикливаться (не размывается).
Ниже то, что я пытался и не работает:
DrawableTypeRequest<String> builder = Glide.with(mImage.getContext()).load(...);
if (entry.isNsfw()) {
builder.asBitmap();
}
builder.diskCacheStrategy(DiskCacheStrategy.SOURCE) //it's likely none of this is relevant
.skipMemoryCache(true)
.override(props.getWidth(), props.getHeight());
if (entry.isNsfw()) {
//successfully blurs nsfw images, but still allows unblurred animation
builder.dontAnimate().bitmapTransform(centreCrop, blur);
} else {
builder.centerCrop();
}
builder.crossFade(500) //moving crossfade only into the sfw posts has no effect
.into(mImage);
Также не работает перехватывает нагрузку:
builder.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
if (entry.isNsfw()) {
target.onResourceReady(resource, null); //If I add this and return true the image is static, but unblurred
resource.stop(); //if this is called before target, it has no effect
return true;
}
return false; //returning true without calling the target stops any of the images being set on the view
}
});
Как я могу отключить воспроизведение GIF для отдельных изображений в то время как все еще сохраняя размытие?
Вы пытались вернуть 'истину' метод' onResourceReady'? Возврат 'false' будет выполнять поведение по умолчанию. Также проверьте [this] (https://github.com/bumptech/glide/issues/1107#issuecomment-205735933) –
Возврат true останавливает изображение, установленное на цель. Использование asBitmap также не имело эффекта, я обновлю код в своем примере, чтобы показать другие вещи, которые я пробовал сейчас –