#android #animation #android-imageview #translate-animation
#Android #Анимация #android-imageview #перевести-анимация
Вопрос:
Я хотел бы перевести ImageView на вертикальную ось, а затем на горизонтальную.
Вот мой translate.xml код:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:interpolator="@android:anim/linear_interpolator" >
<translate
android:fillAfter="true"
android:fromYDelta="0%"
android:toYDelta="180%"
android:fromXDelta="50%"
android:toXDelta="50%"
android:duration="1500">
</translate>
<translate
android:fillAfter="true"
android:fromXDelta="0%"
android:toXDelta="-200%"
android:duration="1500">
</translate>
</set>
Код из Myactivity.java:
ImageView Img1 = (ImageView)findViewById(R.id.ImageView1);
anim_translate = AnimationUtils.loadAnimation(getApplicationContext(),translate);
//load animation
Img1.startAnimation(anim_translate);
Я бы хотел, чтобы изображение перемещалось вниз, а затем переводилось влево, но оно перемещается только в левый угол, один раз.
Спасибо!
Комментарии:
1. Вы пытались разделить это на две анимации? Вы можете зарегистрировать прослушиватель, когда первая анимация будет завершена, а затем вы начнете вторую анимацию.
2. Теперь это решено, спасибо! Я добавил android: startOffset для каждой части анимации.
3. Вы можете поделиться окончательным решением, чтобы кто-нибудь другой мог его использовать 🙂
Ответ №1:
Решение заключается в:
<translate
android:fromYDelta="0%"
android:toYDelta="170%"
android:fromXDelta="50%"
android:toXDelta="50%"
android:duration="1500"
android:fillAfter="true">
</translate>
<translate
android:startOffset="1500"
android:fillAfter="true"
android:fromXDelta="0%"
android:toXDelta="-200%"
android:duration="1500">
</translate>