ActionBar中菜单项的动画

时间:2011-09-14 20:12:34

标签: android android-3.0-honeycomb

当您长按Gmail应用程序(Honeycomb)中的电子邮件项时,会显示类似上下文的菜单,其中的项目在开始时设置为动画。怎么做的?感谢。

3 个答案:

答案 0 :(得分:1)

你无法为MenuItems设置动画,所以诀窍是使用MenuItem.setActionView()在其位置设置一个相同的View,并像往常一样为该视图设置动画,然后在使用MenuItem.setActionView(null)完成动画时取消设置

public class MainFragment extends Fragment {

   private Menu mOptionsMenu;

   @Override
   public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
       mOptionsMenu = menu;
       inflater.inflate(R.menu.fragment_main, menu);
   }

   private void animateActionBarItem() {
       final MenuItem refreshItem = mOptionsMenu.findItem(R.id.action_refresh);
       refreshItem.setActionView(R.layout.actionbar_foo);
       refreshItem.getActionView()
            .animate()
            .setInterpolator(new AccelerateInterpolator())
            .setDuration(100L)
            .scaleX(2F)
            .scaleY(2F)
            .withEndAction(new Runnable() {

                @Override
                public void run() {
                    refreshItem.setActionView(null);
                }
            });
      }

}

R.layout.actionbar_foo的XML

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    style="?android:attr/actionButtonStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_action_accept" />

答案 1 :(得分:0)

看一下我的answer here。它与菜单项父项的布局更改有关,但是如果你看一下我的想法,你就会看到如何为菜单项设置动画。

答案 2 :(得分:-2)

看看here。您可以为调用动画的任何视图设置动画以启动它。