动画Android中的非视图对象

时间:2016-06-29 19:07:43

标签: java android android-animation material-design objectanimator

阅读PropertyAnimator上的文档后,似乎只要满足以下任一项,我们就可以为每个对象设置动画,

  • 如果您有权这样做,请将setter方法添加到类中。
  • 使用您有权更改的包装类,让该包装器使用有效的setter方法接收该值并将其转发给原始对象。
  • 请改用ValueAnimator。

我正在尝试在MenuItem的Drawable或菜单中的StateListDrawable上制作动画。由于drawables不包含setter方法,我想知道是否有人使用ValueAnimator进行翻译动画可以提供一些例子。

1 个答案:

答案 0 :(得分:0)

ValueAnimator animator = ValueAnimator.ofFloat(0, 1);
animator.setDuration(300);
animator.setInterpolator(new CycleInterpolator(3));
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        label.setTranslationX(((Float) animation.getAnimatedValue()) * 20);
    }
});
animator.start();

ValueAnimator非常简单,可用于动画任何内容。您只需更新所需的值,并在每个动画帧中手动使视图无效。上面的动画摇了三次标签。