我正在对按钮进行动画处理,当我单击一个按钮时,该按钮应该沿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);
}
});
}
答案 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文件。我希望这个答案是有用的。