Skip to content
Advertisement

Why my gif only loads if i click in the ImageView?

The problem that i’m having is that the gif only loads if i click in the image. I made a ViewHolderCreator class that builds the view. There is a method onCreateViewHolder that will tell which type it is.There are various types. This is the list in the class:

private final int CI_IMAGE = 1;
private final int CI_IMAGE_AND_TEXT = 2;
private final int CI_TEXT = 4;
private final int CI_VIDEO_RIGHT = 5;
private final int CI_PRODUCT = 6;
private final int CI_TEXT_AND_IMAGE = 7;
private final int CI_VIDEO_LEFT = 8;
private final int CI_IMAGE_SQUARED = 9;
private final int CI_IMAGE_THREE_BY_ONE = 10;

The specific gif that i want is CI_IMAGE and in the code it will instatiate the class CIImageViewHolder

This is the CIImageViewHolder class:

public class CIImageViewHolder extends ContentViewHolder {

    @Nullable
    @BindView(R.id.image)
    ImageView imageView;

    @Nullable
    private BitmapImageViewTarget imageTarget;

    public CIImageViewHolder(@NonNull View view) {
        super(view);
        ButterKnife.bind(this, view);
        imageTarget = new BitmapImageViewTarget(imageView);
    }

    @Override
    public void refreshView(Content content, boolean vertical, boolean isUnicorn) {
        final ContentInfusion contentInfusion = content.getContent();
        imageView.setImageBitmap(null);
        Image image = contentInfusion.getImage();

        if (image != null) {
            Glide.with(mContext).asBitmap().load(image.getUrl())
                    .transition(new GenericTransitionOptions<>().transition(R.anim.quick_fade_in)).into(imageTarget);
            imageView.setVisibility(View.VISIBLE);
        } else {
            imageView.setVisibility(View.INVISIBLE);
        }
    }
}

Advertisement

Answer

Try this for gif

          Glide.with(mContext)
                .asGif()
                .load(image.getUrl())
                .transition(new GenericTransitionOptions<>().transition(R.anim.quick_fade_in))
                .into(imageView);

Gradle versions:

implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement