Android动画:将左下角翻译为屏幕中间

时间:2017-08-02 09:36:31

标签: android layout android-recyclerview android-animation

enter image description here我想设计一个布局,其中的动画就像下面的图像。它不是从左下到中间的直线,它应该是圆形方式。五个图像应该从左下方逐个来。 我已经完成了代码,但它实际上不能正常工作,我只是想知道我必须把它放在Anim文件夹中(动画资源文件)

[![<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:duration="1500"
        android:fromXDelta="0%"
        android:fromYDelta="200%"
        android:toXDelta="0%"
        android:toYDelta="0%" />
</set>][1]][1]

2 个答案:

答案 0 :(得分:0)

为此,我们必须创建五个anim styles,并且必须逐个设置所有这五个圈子。

<强> first_anim.xml

 <?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:duration="1000"
        android:fromXDelta="-300%"
        android:fromYDelta="1100%"
        android:toXDelta="0%"
        android:toYDelta="0%" />
</set>

<强> second_anim.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:duration="1200"
    android:fromXDelta="-350%"
    android:fromYDelta="800%"
    android:toXDelta="0%"
    android:toYDelta="0%" />

<强> third_anim.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:duration="1500"
    android:fromXDelta="-380%"
    android:fromYDelta="800%"
    android:toXDelta="0%"
    android:toYDelta="0%" />

four_anim.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:duration="1800"
    android:fromXDelta="-500%"
    android:fromYDelta="800%"
    android:toXDelta="0%"
    android:toYDelta="0%" />

five_anim.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:duration="2000"
    android:fromXDelta="-600%"
    android:fromYDelta="800%"
    android:toXDelta="0%"
    android:toYDelta="0%" />

现在将您的视图设置为Animation类。

Animation anim = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.first_anim);
        yourView.setAnimation(anim);

答案 1 :(得分:0)

以上回答对这个问题很有用,但你必须按照你的提法设置五个动画。

Animation anim = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.first_anim);
        yourView.setAnimation(anim);

Animation anim2 = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.two_anim);
    yourView.setAnimation(anim2);

Animation anim3 = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.three_anim);
    yourView.setAnimation(anim3);

Animation anim4 = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.four_anim);
    yourView.setAnimation(anim4);

Animation anim5 = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.five_anim);
    yourView.setAnimation(anim5);