I am not familiar with Glide, but perhaps if you override the method onResourceReady(), you can reduce it.
Use .listener()as follows
Glide.with(getContext())
.load(R.raw.abc)
.listener(new RequestListener<Uri, GlideDrawable>() {
@Override
public boolean onException(Exception e, Uri model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, Uri model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
GlideDrawableImageViewTarget glideTarget = (GlideDrawableImageViewTarget) target;
ImageView iv = glideTarget.getView();
int width = iv.getMeasuredWidth();
int targetHeight = width * resource.getIntrinsicHeight() / resource.getIntrinsicWidth();
if(iv.getLayoutParams().height != targetHeight) {
iv.getLayoutParams().height = targetHeight;
iv.requestLayout();
}
return false;
}
})
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(this);
source
share