在不启动动画的情况下从 ValueAnimator 获取动画值
get animated value from ValueAnimator without starting the animation
是否可以在不启动动画的情况下从 ValueAnimator
获取动画值?我有开始和目标颜色。
我有一个 PageTransformer
,我想根据页面位置设置背景颜色。所以我想在页面滑动时更改背景颜色。 (不是在页面滑动之后)
是否可以在没有启动动画开销的情况下使用ValueAnimator
?
我想要的一个简单例子
假设起始值为 0,目标值为 100。动画持续时间为 500 毫秒。
当我经过 53 毫秒时,它应该输出 (53/500)*(100)。
现在这是一个简单的例子,我该怎么做颜色?
您写的似乎不完全是关于动画的,而是关于插值的。要像您描述的那样插入颜色值,您可以使用 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);
是否可以在不启动动画的情况下从 ValueAnimator
获取动画值?我有开始和目标颜色。
我有一个 PageTransformer
,我想根据页面位置设置背景颜色。所以我想在页面滑动时更改背景颜色。 (不是在页面滑动之后)
是否可以在没有启动动画开销的情况下使用ValueAnimator
?
我想要的一个简单例子
假设起始值为 0,目标值为 100。动画持续时间为 500 毫秒。
当我经过 53 毫秒时,它应该输出 (53/500)*(100)。
现在这是一个简单的例子,我该怎么做颜色?
您写的似乎不完全是关于动画的,而是关于插值的。要像您描述的那样插入颜色值,您可以使用 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);