如何通过xml将动画设置在2个按钮上?

时间:2018-11-22 23:49:43

标签: android android-studio user-interface animation button

我正在对按钮进行动画处理,当我单击一个按钮时,该按钮应该沿y轴移动并淡出,而另一个按钮将在y轴上淡入。我已经通过在Java类中编写代码来实现了这一点,并且工作得很好,但是我想将所有代码转移到XML并从那里调用。这些动画。如何以这种方式制作一组动画,即平移,淡出以及另一个平移和淡入?

 public static void crossfade(Button buttonToFadeOut, Button buttonToFadeIn) {

    buttonToFadeIn.setAlpha(0f);
    buttonToFadeIn.setVisibility(View.VISIBLE);

    buttonToFadeIn.animate()
            .alpha(1f)
            .translationY(100)  //220
            .setDuration(700)
            .setStartDelay(60)
            .setListener(null);

    buttonToFadeOut.animate()
            .alpha(0f)
            .setDuration(700)
            .translationY(-100)
            .setListener(new AnimatorListenerAdapter() {
                @Override
                public void onAnimationEnd(Animator animation) {
                    buttonToFadeOut.setVisibility(View.GONE);
                }
            });
}

1 个答案:

答案 0 :(得分:0)

这是您可以在XML中淡出的方法:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">
    <alpha
        android:duration="1700"
        android:fromAlpha="1.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toAlpha="0.0" />
</set>

您必须在res中创建一个名为anim的新Android资源目录,并将以上文件放在anim文件夹中。

现在,要在Java中调用该动画,您必须要做的事情:

Animation anim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fadeout);

现在,要将此动画应用到您的按钮上,您将执行以下操作:

button.startAnimation(anim);

link here上有一个非常有用的视频,介绍了如何制作用于各种动画的XML文件。我希望这个答案是有用的。