为什么我的 gif 仅在我单击 ImageView 时加载?
Why my gif only loads if i click in the ImageView?
我遇到的问题是 gif 仅在我单击图像时加载。我制作了一个构建视图的 ViewHolderCreator class。有一个方法 onCreateViewHolder 会告诉它是哪种类型 is.There 是各种类型。这是 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;
我想要的特定 gif 是 CI_IMAGE 并且在代码中它将实例化 class CIImageViewHolder
这是 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);
}
}
}
试试这个 gif
Glide.with(mContext)
.asGif()
.load(image.getUrl())
.transition(new GenericTransitionOptions<>().transition(R.anim.quick_fade_in))
.into(imageView);
Gradle 版本:
implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
我遇到的问题是 gif 仅在我单击图像时加载。我制作了一个构建视图的 ViewHolderCreator class。有一个方法 onCreateViewHolder 会告诉它是哪种类型 is.There 是各种类型。这是 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;
我想要的特定 gif 是 CI_IMAGE 并且在代码中它将实例化 class CIImageViewHolder
这是 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);
}
}
}
试试这个 gif
Glide.with(mContext)
.asGif()
.load(image.getUrl())
.transition(new GenericTransitionOptions<>().transition(R.anim.quick_fade_in))
.into(imageView);
Gradle 版本:
implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'