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

use*_*180 5 animation android menuitem

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

我怎么能重现那种效果?我知道我应该使菜单无效而不是如何制作动画.

Sim*_*mas 21

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

例:

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();
                }
            });
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

注意R.id.action_add_item是的id属性MenuItem.

  • @ user3290180只需在`TextView`上实现一个长按监听器,并在我的示例中为工具栏视图设置动画.要更改图标/ drawable,您可以使用`TransitionDrawable`. (2认同)