📜  如何在 Android 中创建 AnimatedGradient?(1)

📅  最后修改于: 2023-12-03 15:08:33.124000             🧑  作者: Mango

如何在 Android 中创建 AnimatedGradient?

通过使用 GradientDrawable 类和 ValueAnimator 类,我们可以在 Android 中创建一个动态的渐变动画。以下是创建 AnimatedGradient 的步骤:

步骤 1:创建 GradientDrawable 文件

在 res/drawable 文件夹下,创建一个 gradient.xml 文件,如下所示:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <gradient
        android:type="linear"
        android:startColor="#00FF00"
        android:endColor="#FF0000"
        android:angle="0"/>
</shape>

上述代码中,我们使用了渐变颜色,在这里,我们使用了绿色和红色。当然,你也可以使用其他颜色或渐变类型。

步骤 2:创建 ValueAnimator 动画

在 MainActivity.java 中,我们将使用 ValueAnimator 来创建渐变动画。以下是几行代码,可以在 onCreate 方法中加入来为我们创建动画:

ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1);
valueAnimator.setDuration(2500);
valueAnimator.setRepeatCount(ValueAnimator.INFINITE);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        float fraction = animation.getAnimatedFraction();
        GradientDrawable gradient = (GradientDrawable) getResources().getDrawable(R.drawable.gradient);
        gradient.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
        gradient.setColors(new int[]{
                (Integer) evaluation.evaluate(fraction, Color.GREEN, Color.RED),
                (Integer) evaluation.evaluate(fraction, Color.RED, Color.YELLOW),
                (Integer) evaluation.evaluate(fraction, Color.YELLOW, Color.GREEN)
        });
        view.setBackgroundDrawable(gradient);
    }
});
valueAnimator.start();

如上述代码所示,我们首先创建了一个浮点值类型的 ValueAnimator,其范围为 0 到 1。接着我们设置了动画的持续时间为 2.5 秒,重复次数为无限次。我们接着添加了一个更新侦听器。该侦听器在每个时间间隔内更新视图,从而在此期间创建一个新的 GradientDrawable 对象,并将其设置为视图的背景。

步骤 3:运行应用

最后,我们现在可以运行我们的应用程序,并看到 AnimatedGradient 渐变动画正在工作了!

以上就是如何在 Android 中创建 AnimatedGradient 的完整步骤。