如何使用滑动将GIF图像从可绘制文件夹加载到ImageView中?

时间:2016-02-19 07:30:22

标签: android drawable animated-gif android-glide

我必须使用glide显示从drawable到ImageView的加载GIF图像。我尝试过以下操作。

Glide.with(LoginActivity.this)
                .load(getResources().getDrawable(R.drawable.bg_gif)).asGif()
                .crossFade()
                .into(relativeLayout);

但是当我将图像放在raw文件夹中时它似乎不起作用并且它正在工作。但问题是我必须使用不同尺寸的图像。

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:12)

您可以尝试使用Ion它对我来说很好。 Ion

使用Ion

 Ion.with(imgView)
.error(R.drawable.default_image)
.animateGif(AnimateGifMode.ANIMATE)
.load("file:///android_asset/animated.gif");

使用Glide

ImageView imageView = (ImageView) findViewById(R.id.imageView);
GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView);
Glide.with(this).load(R.raw.sample_gif).into(imageViewTarget);

另一种方法

对于 Glide 3.0 ,您需要先设置asGif()

Glide.with(context)
    .load(imageUrl)
    .asGif()
    .placeholder(R.drawable.loading2)
    .crossFade()
    .into(imageView);

请记住,仅使用load()将根据数据类型加载GIF或Bitmap。如果您希望加载失败,如果给定的URL不是gif,则不需要指定asGif()

答案 1 :(得分:5)

只需将资源ID直接传递给load()

Glide.with(LoginActivity.this)
            .load(R.drawable.bg_gif)
            .asGif()  // you may not need this
            .crossFade()
            .into(relativeLayout);

答案 2 :(得分:3)

从drawable

加载Gif图像的步骤
  1. 您需要将Gif图片移至项目的<ul id="left" class='column'> <li><a href="#">Home</a></li> <li><a href="#">Sobre</a></li> <li><a href="#">O que Fazemos?</a> <ul> <li><a href="#">Web Design</a></li> <li><a href="#">Hospedagem</a></li> <li><a href="#">SEO</a></li> <li><a href="#">Sistemas</a></li> </ul> </li> <li><a href="#">Contato</a></li> 文件夹 ( 如果您的项目资源中没有res/raw文件夹,那么只需创建一个并将您的gif放入其中)

  2. 然后你可以只用一行代码加载你的gif

  3. raw

答案 3 :(得分:1)

将你的Gif放入&#34; raw&#34;文件夹和使用

  GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView);
    Glide.with(this).load(R.raw.test).into(imageViewTarget);

答案 4 :(得分:1)

对于Glide 4

GlideApp.with(this)
            .load(R.raw.gif_file)
            .diskCacheStrategy(DiskCacheStrategy.NONE)
            .into(imageView);