要實現動畫效果,可以使用PopupMenu的setOnMenuItemClickListener方法監聽菜單項的點擊事件,并在點擊事件中添加動畫效果。
PopupMenu popupMenu = new PopupMenu(context, view);
popupMenu.getMenuInflater().inflate(R.menu.menu, popupMenu.getMenu());
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
// 添加動畫效果
Animation animation = AnimationUtils.loadAnimation(context, R.anim.your_animation);
view.startAnimation(animation);
// 處理菜單項的點擊事件
switch (item.getItemId()) {
case R.id.menu_item1:
// 處理菜單項1的點擊事件
return true;
case R.id.menu_item2:
// 處理菜單項2的點擊事件
return true;
default:
return false;
}
}
});
popupMenu.show();
在res/anim文件夾下創建你的動畫效果xml文件,比如fade_in.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="500"/>
</set>
然后在代碼中引用這個動畫效果:
Animation animation = AnimationUtils.loadAnimation(context, R.anim.fade_in);
view.startAnimation(animation);
這樣就可以給PopupMenu的菜單項添加動畫效果了。你也可以根據自己的需求自定義其他動畫效果。