24

すでに動作している2つのアニメーションがあります。電車をフェードし、同時に電車をトゥイーンしたいと思います。これらの行の1つを実行すると、機能します。しかし、両方を実行しようとすると、1つしか機能しません。ここで解決策を見つけることができません。

多分あなたは助けることができますか?

  final ImageView mytrain = (ImageView) findViewById(R.id.train);
  final Animation traintween = AnimationUtils.loadAnimation(this,R.anim.treinanimation);
   final Animation trainfade = AnimationUtils.loadAnimation(this,R.anim.trainfade);


  mytrain.startAnimation(trainfade);
 mytrain.startAnimation(trainntween);

mytrainに両方のアニメーションを実行させたい。

お手伝いありがとう!

4

5 に答える 5

68

AnimationSetクラスを使用します。

AnimationSet s = new AnimationSet(false);//false means don't share interpolators
s.addAnimation(traintween);
s.addAnimation(trainfad);
mytrain.startAnimation(s);
于 2013-03-21T12:35:23.877 に答える
4

を使用する必要があります。ドキュメントAnimationSetを確認してください。再生したい各アニメーションを呼び出すだけです。addAnimation()

于 2013-03-21T12:33:43.533 に答える
4

androidのAnimatorSetクラスを使用してプログラムで実行できます:

final AnimatorSet mAnimatorSet = new AnimatorSet();
    mAnimatorSet.playTogether(
                ObjectAnimator.ofFloat(img_view,"scaleX",1,0.9f,0.9f,1.1f,1.1f,1),
                ObjectAnimator.ofFloat(img_view,"scaleY",1,0.9f,0.9f,1.1f,1.1f,1),
                ObjectAnimator.ofFloat(img_view,"rotation",0 ,-3 , -3, 3, -3, 3, -3,3,-3,3,-3,0)
        );

//define any animation you want,like above

mAnimatorSet.setDuration(2000); //set duration for animations
    mAnimatorSet.start();

この例では、ターゲットビュー(imgView)で3つのアニメーションすべてを同時に開始します。また、playSequentially....を使用することもできます。

完全な例については、これをチェックしてください。

于 2015-04-16T07:52:48.010 に答える
1

これは、単一のxmlファイル内のすべてのアニメーションの例です...

これは役に立ちますが、最初にAnimationSetのドキュメントを読む必要があります

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<scale android:fromXScale="1.0" android:toXScale="3.0"
    android:fromYScale="1.0" android:toYScale="3.0" android:pivotX="50%"
    android:pivotY="50%"  android:duration="5000" />
<set>
    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromAlpha="0.2" android:toAlpha="1.0"     android:duration="3000" />
    <rotate android:fromDegrees="0" android:toDegrees="-360"
        android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%"
        android:startOffset="700" android:duration="4000" />
<!--        <translate android:fromXDelta="0%" android:toXDelta="0%" -->
<!--            android:fromYDelta="0%" android:toYDelta="100%"     android:duration="3000" -->
</set>

</set>
于 2013-03-21T12:37:55.603 に答える
0

ImageSwitcherを使用することもできます。これは、あなたの場合のAnimationSetよりも優れていると思います。

于 2013-03-21T15:30:19.417 に答える