从ValueAnimator获取动画值而无需启动动画

时间:2018-12-05 20:00:49

标签: java android android-animation android-pagetransformer

是否可以在不启动动画的情况下从ValueAnimator获取动画值?我确实有开始色和目标色。

我有一个PageTransformer,我想根据页面位置设置背景色。所以我想在页面滑动时更改背景颜色。 (不是在页面滑动之后)

是否可以使用ValueAnimator而不必花费动画的开销?


我想要的简单例子

假设开始值为0,目标值为100。动画持续时间为500ms。

当我经过53毫秒时,它应该输出(53/500)*(100)。

现在这是一个简单的示例,如何为一种颜色做呢?

1 个答案:

答案 0 :(得分:2)

您似乎在写的不完全是关于动画的,而是关于插值的。要获得像您描述的那样插值的颜色值,可以使用ArgbEvaluator。这几乎是动画师在内部所做的事情,您可以在页面滑动动画中使用它,而无需任何其他动画师。

ArgbAnimator evaluator = new ArgbAnimator();
float fraction = 0.53f;    // value between 0.0f and 1.0f
int color1 = Color.RED, color2 = Color.GREEN;
int interpolatedColor = evaluator.evaluate(fraction, color1, color2);