8

ProgressBarの背景画像を変更する必要がある場合に実行する適切なアクションは何ですか?つまり、次のような.gif画像を使用する必要があります:http://2.bp.blogspot.com/-O7nsXfmgwSc/T6PQ0PVr6-I/AAAAAAAAAQI/-eXkEXj24-s/s1600/02.gif処理中に画像ファイルを塗りつぶしますか?バーの背景のアニメーションを作成する方法はありますか?私が目指しているのは、プロセスがバー全体をカバーしていない限り、アニメーションを表示することです。

4

1 に答える 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

このリンクを渡すだけで、すべてのフレーム画像が取得されます

于 2012-12-28T12:40:03.277 に答える