如何在进度条中使用gif图片

How to use gif image in progress bar

我已经尝试了所有代码,但我找不到如何在我的进程栏中使用此 (GIF) 图像的解决方案

XML 文件

<ProgressBar
    android:id="@+id/progressBar"
    style="@style/GenericProgressIndicator"
    android:layout_width="fill_parent"
    android:layout_height="200px"
    android:layout_centerInParent="true"
    android:visibility="visible"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:indeterminateDrawable="@drawable/animation" >
</ProgressBar>

JAVA 文件

ProgressBar  bar=(ProgressBar)findViewById(R.id.progressBar);

想在进度条中使用这个图片

这是一个技巧,而不是一个完整的解决方案 我在透明背景的警告对话框中将 gif 作为图像加载 并在进程开始时显示此警告对话框并在结束时关闭它。

但是也看看这个:

您不需要使用 ProgressBar 来显示 GIF,除非您想使用 ProgressBar 提供的特殊功能(看起来不像)。

使用简单的ImageView和一些支持GIF的图片库(eg Glide)就足够了。

  1. 首先将您的 Gif 图像转换为 png 切片图像序列。
  2. 将您的进度条声明为图像视图。
<ImageView
             android:id="@+id/ivProgress"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center"
             android:visibility="visible" />
  1. 使用从 gif 生成的 .png 序列图像在可绘制文件夹中创建一个 .xml 文件。
<?xml version="1.0" encoding="utf-8"?>
            <animation-list    xmlns:android="http://schemas.android.com/apk/res/android"
            android:oneshot="false">
        <item
            android:drawable="@mipmap/wblod_0"
            android:duration="40" />
        <item
            android:drawable="@mipmap/wblod_1"
            android:duration="40" />
        <item
            android:drawable="@mipmap/wblod_2"
            android:duration="40" />
        <item
            android:drawable="@mipmap/wblod_3"
            android:duration="40" />
        <item
            android:drawable="@mipmap/wblod_4"
            android:duration="40" />
        <item
            android:drawable="@mipmap/wblod_5"
            android:duration="40" />
        <item
            android:drawable="@mipmap/wblod_6"
            android:duration="40" />
        <item
            android:drawable="@mipmap/wblod_7"
            android:duration="40" />
        <item
            android:drawable="@mipmap/wblod_8"
            android:duration="40" />
        <item
            android:drawable="@mipmap/wblod_9"
            android:duration="40" />
        <item
            android:drawable="@mipmap/wblod_10"
            android:duration="40" />
        <item
            android:drawable="@mipmap/wblod_11"
            android:duration="40" />
        </animation-list>
  1. 在你的 activity 中设置这样的代码。
private AnimationDrawable animationDrawable;
private ImageView mProgressBar;
mProgressBar.setBackgroundResource(R.drawable.loading_web_animation);
animationDrawable =(AnimationDrawable)mProgressBar.getBackground();
mProgressBar.setVisibility(View.VISIBLE);
animationDrawable.start();
mProgressBar.setVisibility(View.GONE);
animationDrawable.stop();