【问题标题】:Gif image is not showing its animation in android applicationGif 图像未在 android 应用程序中显示其动画
【发布时间】:2017-10-15 01:54:57
【问题描述】:

在我的 android 应用程序中,我使用通用图像加载器来显示来自 url 的图像。在加载图像期间,我希望显示 gif 图像。但是添加的 gif 图像没有显示任何动画。 这是我显示图像的代码。

private static final DisplayImageOptions.Builder DEFAULT_DISPLAY_IMAGE_OPTIONS_BUIDLER = new DisplayImageOptions.Builder()
        .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)
        .displayer(new FadeInBitmapDisplayer(300, true, false, false))
        .showImageForEmptyUri(R.drawable.default_image)
        .showImageOnLoading(R.drawable.loadingx)
        .showImageOnFail(sampleapp.sample.com.sampleapp.R.drawable.default_image).cacheOnDisk(true)
        .cacheInMemory(true).bitmapConfig(Config.ARGB_8888);

我应该做哪些改变以在加载时显示动画 gif 图像

【问题讨论】:

标签: android android-studio universal-image-loader


【解决方案1】:

尝试使用 glide 加载 gif 图片...

Glide  
    .with( context )
    .load( gifUrl )
    .asGif()
    .error( R.drawable.full_cake )
    .diskCacheStrategy(DiskCacheStrategy.SOURCE)
    .into( imageViewGif );

要了解请点击链接 - here

如果您想使用 ProgressBar,请创建如下所示的方法 -

public void loadImage(Context context, String url, ImageView img, final ProgressBar eProgressBar) {

        eProgressBar.setVisibility(View.VISIBLE);
        Glide.with(context)
                .load(url)
                .listener(new RequestListener<String, GlideDrawable>() {
                    @Override
                    public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                        eProgressBar.setVisibility(View.GONE);
                        return false;
                    }

                    @Override
                    public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                        eProgressBar.setVisibility(View.GONE);
                        return false;
                    }
                })
                .crossFade()
                .error(R.drawable.placeholder_image)
                .into(img);
    }

使用此方法并通过它传递您的参数值... :)

【讨论】:

  • 我想在图片 url 加载期间使用 gif 图片。有什么方法可以实现
  • 是的,:) 我按照您的要求编辑了我的答案。希望它会有所帮助。
【解决方案2】:

Universal Image Loader 不支持 Gif 请参阅 this 尝试使用其他库,例如支持 gif 的 Glide

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

【讨论】:

  • 通用图像加载器是否支持默认进度条或微调器
  • 进度条和图片加载器是什么关系,我不明白你在问什么
  • 你说通用图片加载器不支持gif。如果是这样,那么我只需要在加载图像期间显示一些移动的东西。 android中有默认进度条。这个link 展示了如何在加载图像时显示进度条。我试过了,但它也会导致一些错误。
  • 您可以使用加载的图片作为占位符,占位符图片将一直显示,直到原始图片加载完毕。
  • 我使用 gif 图片作为占位符。但它没有显示任何动画。
【解决方案3】:

我通过使用 glide 库得到了答案。但是 glide 比通用图像加载器慢。

Glide.with(getActivity().getApplication())
                .load(item.imageUrl)
                .thumbnail(Glide.with(getActivity().getApplication()).load(R.drawable.loadingx))
                .fitCenter()
                .crossFade()
                .into(holder.image);

【讨论】:

    猜你喜欢
    • 2018-02-03
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多