带有.gif文件的Android自定义进度条

Nis*_*war 0 android android-custom-view android-progressbar

在我的应用程序中,我有一个自定义进度条

progress.xml

 <ProgressBar
    android:id="@+id/progressBar1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:progressDrawable="@drawable/loader" />
Run Code Online (Sandbox Code Playgroud)

我的gif文件

我的GIF图片

我想用这个图像创建一个进度条

换句话说,我想在每次从服务器下载数据时显示此图像,并在下载数据后将其删除

或者你可以说,如何将此图像显示为进度条

小智 12

  • 首先将您的Gif图像转换为png切片图像序列.
  • 将"进度"栏声明为"图像"视图.

    <ImageView
        android:id="@+id/main_progress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:visibility="visible" />
    
    Run Code Online (Sandbox Code Playgroud)
  • 使用从gif生成的.png序列图像在drawable文件夹中创建.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>
    
    Run Code Online (Sandbox Code Playgroud)
  • 在Main 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();`
    
    Run Code Online (Sandbox Code Playgroud)