无法使用 glide 在 android 的 imageview 中显示动画 gif
not able to display animated gif in imageview in android using glide
我的代码是这样的:
String gifUrl = "http://i.kinja-img.com/gawker-media/image/upload/s--B7tUiM5l--/gf2r69yorbdesguga10i.gif";
Glide
.with( mContext )
.load( gifUrl )
.error( R.drawable.sample )
.into( imageViewTarget );
imageViewTarget 是一个普通的图像视图。但是它没有在图像视图中加载 gif。
使用 GlideDrawableImageViewTarget
ImageView imageView = (ImageView) findViewById(R.id.imageView);
GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView);
Glide.with(this).load(gifUrl).into(imageViewTarget);
或
Glide.with(context)
.load(gifUrl)
.asGif()
.placeholder(R.drawable.sample)
.crossFade()
.into(imageView);
它可以工作,但加载 gif 可能需要一些时间。
ImageView imageView = (ImageView) findViewById(R.id.imageView);
GlideDrawableImageViewTarget imageViewPreview = new GlideDrawableImageViewTarget(imageView);
Glide.with(this)
.load("http://i.kinja-img.com/gawker-media/image/upload/s--B7tUiM5l--/gf2r69yorbdesguga10i.gif")
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
Log.e("MyApp", "onException: "+model+" Exception: "+e );
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
Log.e("MyApp", "onResourceReady: "+model );
return false;
}
})
.into(imageViewPreview);
不要为 Glide.It 使用过渡或动画将解决您的问题
代码:
Glide.with(context) .load(imgurl)
.apply(RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.RESOURCE)
.error(R.drawable.no_image)) .into(holder.imageView);
我的代码是这样的:
String gifUrl = "http://i.kinja-img.com/gawker-media/image/upload/s--B7tUiM5l--/gf2r69yorbdesguga10i.gif";
Glide
.with( mContext )
.load( gifUrl )
.error( R.drawable.sample )
.into( imageViewTarget );
imageViewTarget 是一个普通的图像视图。但是它没有在图像视图中加载 gif。
使用 GlideDrawableImageViewTarget
ImageView imageView = (ImageView) findViewById(R.id.imageView);
GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView);
Glide.with(this).load(gifUrl).into(imageViewTarget);
或
Glide.with(context)
.load(gifUrl)
.asGif()
.placeholder(R.drawable.sample)
.crossFade()
.into(imageView);
它可以工作,但加载 gif 可能需要一些时间。
ImageView imageView = (ImageView) findViewById(R.id.imageView);
GlideDrawableImageViewTarget imageViewPreview = new GlideDrawableImageViewTarget(imageView);
Glide.with(this)
.load("http://i.kinja-img.com/gawker-media/image/upload/s--B7tUiM5l--/gf2r69yorbdesguga10i.gif")
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
Log.e("MyApp", "onException: "+model+" Exception: "+e );
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
Log.e("MyApp", "onResourceReady: "+model );
return false;
}
})
.into(imageViewPreview);
不要为 Glide.It 使用过渡或动画将解决您的问题
代码:
Glide.with(context) .load(imgurl)
.apply(RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.RESOURCE)
.error(R.drawable.no_image)) .into(holder.imageView);