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