【问题标题】:get animated value from ValueAnimator without starting the animation从 ValueAnimator 获取动画值而不启动动画
【发布时间】:2018-12-05 20:00:48
【问题描述】:

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

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

是否可以在没有启动动画开销的情况下使用ValueAnimator


我想要的一个简单的例子

假设起始值为 0,目标值为 100。动画持续时间为 500 毫秒。

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

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

【问题讨论】:

  • 我不明白这个问题。不启动动画怎么能有动画值呢?如果您没有为该值设置动画,那么您将无法获得动画值。您是在问是否可以在不修改视图的情况下“为值设置动画”?

标签: java android android-animation android-pagetransformer


【解决方案1】:

您似乎写的不是动画,而是插值。要像您描述的那样获得插值的颜色值,您可以使用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);

【讨论】:

  • 这正是我想要的!非常感谢。
猜你喜欢
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 2019-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多