【问题标题】:How to put set of animations on 2 buttons through xml?如何通过xml将一组动画放在2个按钮上?
【发布时间】:2019-04-25 14:57:36
【问题描述】:

我正在为我的按钮设置动画,当我单击一个按钮时,该按钮应该沿 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);
                }
            });
}

【问题讨论】:

  • 你好。我的回答对你有帮助吗?
  • @Ishaan .. 是的,抱歉我不得不出去,回复晚了。

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


【解决方案1】:

这是在 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 文件。我希望这个答案有用。

【讨论】:

  • 是的,这很完美。非常感谢你
  • 但是有没有办法在一个 xml 文件中的 2 个按钮上制作一组动画。例如在你的xml文件中你只是淡出,但我想知道你是否可以淡出一个按钮并翻译,然后淡入另一个按钮并翻译,所有这些代码都写在一个xml文件中?
  • 您将能够为第一个按钮提供淡出和翻译。但是在执行 s cond 按钮的淡入和转换时,您将需要一个单独的文件,因为每个动画都必须设置为特定的视图。通过将它们全部放入一个 XML 文件中,第一个按钮将执行所有 4 个操作。因此,您必须制作两个单独的 XML 文件。如果您查看我给您的链接,您应该可以做到。它还有很多其他动画,如翻译、放大等。
  • 知道了。谢谢你
猜你喜欢
  • 1970-01-01
  • 2021-09-29
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-19
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
相关资源
最近更新 更多