我的问题:需要对原有项目中已有的PopupMenu菜单进行改进:

一、

1、增加菜单中title标题前的图标icon

2、修改PopupMenu的背景颜色

3、修改PopupMenu中title标题文字的大小和颜色

首先爬过的坑告诉大家

1、在popup_menu.xml中修改文字的大小 输入 android:textsize,发现并没有此项属性,(android:color,android:src,android:background 等属性都没有引用,就不在一一列举了)强行复制粘贴

2、在popup_menu.xml中增加图标,输入 icon属性并且引用图标,图标位置为drawable文件夹下的资源,你们可以试下mimp文件夹下的图标是否能使用,我就不试啦

popup_menu.xml<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:textsize="30sp"android:icon="@drawable/menu_add_friends"android:id="@+id/add_contacts"android:title="@string/add_person_lx" /></menu>

3、最后添加完文字的大小、颜色、与图标时高兴的去运行项目,发现我们增加的多种效果并没有实现,这是怎么回事呢,通过查询PopupMenu的使用 如下解决方法

二、

1、首先贴出正确的 popup_menu.xml 如下

还是要在布局文件中增加图标 icon并引用

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:icon="@drawable/menu_add_friends"android:id="@+id/add_contacts"android:title="@string/add_person_lx" /><itemandroid:icon="@drawable/menu_group_chat"android:id="@+id/create_group"android:title="@string/create_group" /><itemandroid:icon="@drawable/menu_qrcode"android:id="@+id/scan"android:title="@string/sao_sao" /><itemandroid:id="@+id/search_group"android:visible="false"android:title="@string/search_group" /></menu>

2、在你需要修改对应的代码中添加如下代码

 popupMenu = new PopupMenu(this, plus_add);menu = popupMenu.getMenu();// 通过XML文件添加菜单项MenuInflater menuInflater = getMenuInflater();menuInflater.inflate(R.menu.popup_menu, menu);/** 反射显示布局中的图标  我也不懂..抄的* */try {Field field = popupMenu.getClass().getDeclaredField("mPopup");field.setAccessible(true);MenuPopupHelper helper = (MenuPopupHelper) field.get(popupMenu);helper.setForceShowIcon(true);} catch (NoSuchFieldException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}

3、设置图标后开始设置popup_menu.xml的背景颜色与其中的文字大小和颜色

4、是通过设置style文件自定义样式去引用的 ,如下

 <style name="AppTheme" parent="BaseTheme"><!--<item name="android:windowIsTranslucent">true</item>--><item name="android:windowIsTranslucent">false</item><!--引用自定义popupwindow样式--><item name="popupMenuStyle">@style/MyPopupMenu</item><item name="textAppearanceSmallPopupMenu">@style/MyTextAppearance</item><item name="textAppearanceLargePopupMenu">@style/MyTextAppearance</item></style><!--popupwidow的背景颜色--><style name="MyPopupMenu" ><item name="android:popupBackground">@color/white</item></style><!--popupwindow的文字样式--><style name="MyTextAppearance"><item name="android:textColor">@color/gray_wallet</item><item name="android:textSize">@dimen/txt_normal_content</item></style><!--popMenu分割线的颜色--> <!--暂未使用       --><style name="popmenuDivier"><item name="android:divider">@color/colorAccent</item><item name="android:dividerHeight">2sp</item></style>

5、如果是在某个Activity中使用还可将此样式单独引用

<activityandroid:name="你的activity"android:theme="@style/你自己自定义的样式"/>

总结:也就这么多的内容吧,若是有错误或不足,请大家给我留言,我在修改,谢谢阅读。

若还是不太明白,可阅读此两篇文章

https://www.jianshu.com/p/9abbf0fe4846

https://blog.csdn.net/loucyin/article/details/50813439

Android PopupMenu 简单使用相关推荐

  1. Android Studio简单设置

    2019独角兽企业重金招聘Python工程师标准>>> Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面 ...

  2. 简单Android手机APP地图,android最简单手机地图APP(只需5分钟)

    android最简单手机地图APP--只有三部分. 第一部分 首先建立一个MapActivity在setContentView(R.layout.activity_map);中创建一个代码如下. [h ...

  3. android仿微信的activity平滑水平切换动画,Android实现简单底部导航栏 Android仿微信滑动切换效果...

    Android实现简单底部导航栏 Android仿微信滑动切换效果 发布时间:2020-10-09 19:48:00 来源:脚本之家 阅读:96 作者:丶白泽 Android仿微信滑动切换最终实现效果 ...

  4. 【转】Android Studio简单设置

    原文网址:http://ask.android-studio.org/?/article/14 Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以 ...

  5. Android JNI简单实例(android 调用C/C++代码)

    转载自 xiechengfa 最终编辑 xiechengfa Android JNI简单实例关键字: android.jni Android的jni实例 android 的应用程序(Dalvik VM ...

  6. android Glide简单使用

    今天,简单讲讲Android里Glide的简单使用. Android框架系列: 一.android EventBus的简单使用 二.android Glide简单使用 对于Glide这个加载图片的框架 ...

  7. android加法服务类,iOS越来越像Android:苹果简单做加法远离精致

    原标题:iOS越来越像Android:苹果简单做加法远离精致 刚刚结束的WWDC2016的主题演讲中,苹果为我们带来了最新的iOS 10系统,官方称本次iOS 10的推出有着多大10项的重要更新,在用 ...

  8. android平台的计时功能,Android实现简单计时器功能

    本文实例为大家分享了Android实现简单计时器的具体代码,供大家参考,具体内容如下 布局 在res/layout 下进行布局 xmlns:android="http://schemas.a ...

  9. Android 系统简单介绍

    Android 系统简单介绍 2011年11月20日 写这篇文章的目的是为了给那些刚刚入手安 卓手机的新手们一些参考,希望他们能快速的上手 [第一期]ANDROID基础知识1~20 [第二期]继续泡! ...

最新文章

  1. “玻璃大王”曹德旺捐资100亿办大学!
  2. 常量和指针(Pointers and Constants)
  3. centos7安装redis的正确姿势
  4. 关于以追加模式写入文件时,为什么第一行是空行?
  5. java 缓存清理echo_“kill -9”一时爽,秋后算账泪两行
  6. redis 版的 hello world
  7. r语言处理数据集编码_在强调编码语言或工具之前,请学习这3个基本数据概念
  8. PostgreSQL 视图、子查询
  9. Pandas 数据处理三板斧,你会几板?
  10. 数据探索很麻烦?推荐一款史上最强大的特征分析可视化工具:yellowbrick
  11. AllWinner T113交叉工具链篇
  12. 中控考勤机数据通过java程序读取方法
  13. Mesh网格编程(四) 正6面体
  14. 项目总结报告(小米商城)
  15. K8S报错network is not ready: container runtime network not ready
  16. 什么是CAS和AQS
  17. WPF教程(二) WPF vs WinForms
  18. 计量语言学软件Altmann-Fitter阿尔特曼拟合器的使用简介(更新中)
  19. 黄土高原主要是什么树木
  20. 蓝牙追踪_如何使用蓝牙追踪器跟踪您的东西

热门文章

  1. 关于公司薪酬绩效管理体系的发展
  2. 达梦数据库dmrman备份与还原(一)
  3. 服务器缺乏dll文件,服务器缺少dll
  4. 北京市国资委监管企业名单
  5. python--type,object,元类,__new__关系
  6. JSP实现基本的注册功能
  7. 世界大学电子电气工程TOP10,国内大学哪家强?
  8. ZJYYC F.唐学长的歌单 优先队列
  9. Redis缓存和MySQL数据一致性
  10. 妙!二十九招驱蚊止痒不再愁