当您长按Gmail
应用程序(Honeycomb
)中的电子邮件项时,会显示类似上下文的菜单,其中的项目在开始时设置为动画。怎么做的?感谢。
答案 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。您可以为调用动画的任何视图设置动画以启动它。