8

当您需要更改 ProgressBar 的背景图像时,应该采取什么适当的操作?我的意思是应该使用 .gif 图像,如:http: //2.bp.blogspot.com/-O7nsXfmgwSc/T6PQ0PVr6-I/AAAAAAAAAQI/-eXkEXj24-s/s1600/02.gif如果是的话,前景色条在过程中填充图像文件?有没有办法为酒吧的背景创建动画?我的目标是显示动画,只要该过程不覆盖整个栏。

4

1 回答 1

14

您需要将所有这些 gif 帧图像单独获取,然后设置到 xml 文件中的动画列表中。

这是您的 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();
      }
});

设置内容视图(iv);

您可以从本网站的 gif 文件中获取所有帧。

http://gif-explode.com/

例如

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

这个链接只是通过它,你会得到所有的帧图像

于 2012-12-28T12:40:03.277 回答