7

属性xml animation-listとしてを設定して開始する方法はありますか?xml次のようにプログラムで設定および開始できます。

    ImageView img = (ImageView) findViewById(R.id.loadingImageView);
    img.setBackgroundResource(R.drawable.loading_animation);
    AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();
    frameAnimation.start();

アニメーションリストは次のとおりです。

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
//...
android:oneshot="false" >

<item
    android:drawable="@drawable/loading_anim_frame_one"
    android:duration="50"/>
 <item
    android:drawable="@drawable/loading_anim_frame_two"
    android:duration="50"/>

etcetera。

xmlマークアップのみ、つまりJavaコードなしでこれを行う方法はありますか?

そうでない場合は、少なくともそれをxml属性として設定し、プログラムで開始する方法はありますか?

アニメーションは複数のドローアブルが順番に構成されているため、単一のドローアブルの回転を使用できません。

4

3 に答える 3

18

あなたはそれを次のように宣言することができます

<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <scale
        android:duration="700"
        android:fillAfter="false"
        android:fromXScale="0.0"
        android:fromYScale="0.0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.4"
        android:toYScale="1.4" />

    <scale
        android:duration="400"
        android:fillBefore="false"
        android:fromXScale="1.4"
        android:fromYScale="1.4"
        android:pivotX="50%"
        android:pivotY="50%"
        android:startOffset="700"
        android:toXScale="0.8"
        android:toYScale="0.8" />

</set>

単なる参考資料です。アニメーションの種類とパラメータを変更する必要があります。そして私の知識によれば、Javaを使用して開始する必要があります。

編集:

これは、アニメーションリストに役立つリンクです。

于 2012-11-26T10:15:16.980 に答える
6

最初にアニメーションをロードする必要があると思います。

Animation anim = AnimationUtils.loadAnimation(this, R.anim.animation_name);

img.startAnimation(anim);
于 2012-11-26T09:08:53.350 に答える
0

今後の参考のために、アルファ版と翻訳版の例を追加します。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="400"
        android:fromYDelta="-100%p"
        android:toYDelta="0%p" />

    <alpha
        android:duration="800"
        android:fromAlpha="0"
        android:toAlpha="1" />
</set>
于 2019-06-12T09:36:24.877 に答える