我想有两个汉堡包图标,它的动画在两个不同的位置,一个按钮在通常的地方(在我的工具栏左边),另一个按钮在导航抽屉里。
在android文档中,除了工具栏之外,我看不到任何关于在其他位置使用hamburguer图标的讨论,因此我想知道是否有一种简单的方法可以实现动画或将动画复制到其他位置/按钮,而无需制作我自己的动画。
提前谢谢你

最佳答案

所以这次我有点晚了(只是遇到了同样的问题)。您可以使用v7支持库中的底层drawableDrawerArrowDrawable。它根据进程处理绘图,但您需要处理状态之间的动画。我用一个setProgress(floatValue)来包装它。请参见下面的示例:

final DrawerArrowDrawable drawable = new DrawerArrowDrawable(this);
ImageView imageView = (ImageView)findViewById(R.id.imageView);
imageView.setImageDrawable(drawable);

ValueAnimator animator = ValueAnimator.ofFloat(0f, 1f);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
  @Override public void onAnimationUpdate(ValueAnimator animation) {
    drawable.setProgress((Float)animation.getAnimatedValue());
  }
});

...

// burger to arrow
animator.start();

...

// arrow to burger
animator.reverse();

这是一个来自生产应用程序的未经测试的改编,应该可以工作:-)

10-05 21:11
查看更多