要自定义 Android PopupMenu 的背景,您可以创建一个自定义的样式并将其应用于 PopupMenu。以下是一种方法:
- 创建一个自定义的样式文件(例如,res/values/styles.xml):
- 创建一个自定义的背景图像文件(例如,res/drawable/custom_popup_background.xml):
- 在代码中使用自定义样式:
PopupMenu popupMenu = new PopupMenu(context, view); try { Field mPopup = PopupMenu.class.getDeclaredField("mPopup"); mPopup.setAccessible(true); Object menuPopupHelper = mPopup.get(popupMenu); Class> classPopupHelper = Class.forName(menuPopupHelper.getClass().getName()); Method setForceIcons = classPopupHelper.getMethod("setForceShowIcon", boolean.class); setForceIcons.invoke(menuPopupHelper, true); } catch (Exception e) { e.printStackTrace(); } popupMenu.getMenuInflater().inflate(R.menu.menu_main, popupMenu.getMenu()); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { //处理菜单项的点击事件 return true; } }); popupMenu.show();
这样就可以自定义 Android PopupMenu 的背景了。您可以根据需要调整样式和背景图像来实现不同的效果。