Ответ 1
Используйте класс AnimationSet
:
AnimationSet s = new AnimationSet(false);//false means don't share interpolators
s.addAnimation(traintween);
s.addAnimation(trainfad);
mytrain.startAnimation(s);
У меня есть 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 выполнял обе анимации.
Спасибо за помощь!
Используйте класс AnimationSet
:
AnimationSet s = new AnimationSet(false);//false means don't share interpolators
s.addAnimation(traintween);
s.addAnimation(trainfad);
mytrain.startAnimation(s);
Вам нужно использовать AnimationSet
, проверить docs. Просто позвоните addAnimation()
для каждой анимации, которую вы хотите воспроизвести.
Может быть сделано программно с использованием класса 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();
этот пример запустит все 3 анимации в целевом представлении (imgView) в одно и то же время, вы также можете использовать playSequently.....
Для полного примера проверьте это.
вот пример всей анимации в одном файле 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>
вы также можете использовать ImageSwitcher, я думаю, что это лучше, чем AnimationSet в вашем случае