在Android上如何在进度条上添加背景动画图片?

8
当您需要更改ProgressBar的背景图像时,应采取什么适当的行动?我的意思是是否应该使用像http://2.bp.blogspot.com/-O7nsXfmgwSc/T6PQ0PVr6-I/AAAAAAAAAQI/-eXkEXj24-s/s1600/02.gif这样的.gif图像?如果是这样,进度条的前景色是否会在过程中填充图像文件?是否有一种方法可以为栏的背景创建动画?我的目标是在进程未覆盖整个栏的情况下显示动画。
1个回答

14

你需要将所有的 GIF 帧图像作为单独的文件获取,然后将它们设置到 XML 文件中的动画列表(animation-list)中。

这是你的 anim_progress.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="@drawable/i1" android:duration="500" />
    <item android:drawable="@drawable/i2" android:duration="500" />
    <item android:drawable="@drawable/i3" android:duration="500" />
    <item android:drawable="@drawable/i4" android:duration="500" />
    <item android:drawable="@drawable/i5" android:duration="500" />
    <item android:drawable="@drawable/i6" android:duration="500" />
    <item android:drawable="@drawable/i7" android:duration="500" />
    <item android:drawable="@drawable/i8" android:duration="500" />
</animation-list>

将变化的持续时间设定为平滑效果,以创建类似于 GIF 动画的动态图像

以下是使用此文件的代码

ImageView iv = new ImageView(this);
iv.setBackgroundResource(R.drawable.anim_progress);
final AnimationDrawable mailAnimation = (AnimationDrawable) iv.getBackground();
iv.post(new Runnable() {
    public void run() {
        if ( mailAnimation != null ) mailAnimation.start();
      }
});

setContentView(iv);

你可以从这个网站获取gif文件的所有帧。

http://gif-explode.com/

例如:

http://2.bp.blogspot.com/-O7nsXfmgwSc/T6PQ0PVr6-I/AAAAAAAAAQI/-eXkEXj24-s/s1600/02.gif

访问此链接,您将获得所有帧图像。


非常感谢,我会尝试并告诉你结果! - JimBoyHac
有没有想法如何将ImageView设置为进度条的背景? - JimBoyHac
设置进度条的背景。ImageView无法将背景设置为另一个视图,但您可以使用相对布局将其放在另一个视图后面。 - Pratik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接