我想在两个不同的位置设置两个汉堡图标,其中一个按钮位于通常位置(工具栏左侧),另一个按钮位于导航抽屉内。
查看Android文档我看不到有关在其他位置使用hamburguer图标而不是工具栏的任何内容,所以我想知道是否有一种简单的方法来实现或将动画复制到其他位置/按钮无需做我自己的动画。
提前谢谢
答案 0 :(得分:9)
所以我在这个问题上有点晚了(只是遇到了同样的问题)。您可以使用v7支持库中的基础drawable DrawerArrowDrawable
。它根据它的进度setProgress(floatValue)
处理绘图,但您需要在状态之间处理动画。我用ValueAnimator
包裹它来做到这一点。见下面的例子:
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();
这是一个来自生产应用程序的未经测试的改编,应该可以工作: - )
答案 1 :(得分:0)
汉堡包菜单图标动画有多种实现方式。您可以尝试使用其中之一。看看这个项目:
https://github.com/keklikhasan/LDrawer
您可以在没有抽屉的情况下使用动画。我希望这会对你有所帮助。