Android:如何在工具栏的菜单图标上制作过渡动画?

时间:2015-06-11 17:19:28

标签: android animation menuitem

如果您使用WhatsApp的最新版本,您会注意到如果您长时间点击聊天中的文本框,则工具栏上的菜单图标将随着旋转动画的变化而变化。

我怎样才能重现这种效果?我知道我应该使菜单无效,但不能制作动画。

1 个答案:

答案 0 :(得分:19)

  1. 使用Toolbar
  2. 等待工具栏使其项目膨胀。
  3. 找到有问题的项目
  4. 为项目设置动画
  5. 示例:

    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    mToolbar.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                                   int oldLeft, int oldTop, int oldRight, int oldBottom) {
            View item = mToolbar.findViewById(R.id.action_add_item);
            if (item != null) {
                mToolbar.removeOnLayoutChangeListener(this);
                item.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        ObjectAnimator animator = ObjectAnimator
                                .ofFloat(v, "rotation", v.getRotation() + 180);
                        animator.start();
                    }
                });
            }
        }
    });
    

    注意R.id.action_add_itemid的{​​{1}}属性。