📅  最后修改于: 2023-12-03 15:08:33.124000             🧑  作者: Mango
通过使用 GradientDrawable 类和 ValueAnimator 类,我们可以在 Android 中创建一个动态的渐变动画。以下是创建 AnimatedGradient 的步骤:
在 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>
上述代码中,我们使用了渐变颜色,在这里,我们使用了绿色和红色。当然,你也可以使用其他颜色或渐变类型。
在 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 对象,并将其设置为视图的背景。
最后,我们现在可以运行我们的应用程序,并看到 AnimatedGradient 渐变动画正在工作了!
以上就是如何在 Android 中创建 AnimatedGradient 的完整步骤。