menu.xml文件:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
  
    <item android:id="@+id/fm_channel_list"
          android:showAsAction ="always"
          android:title="@string/favorite_manager"
          android:icon="@drawable/ic_fm_list"
          style="@style/style_fm_list"//自定义样式为了实现按下弹起显示不同图片
          />
</menu>style.xml文件中style_fm_list:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="style_fm_list">
        <item name="android:src">@drawable/xml_btn_fm_list</item>
    </style>
</resources>xml_btn_fm_list.xml文件中包含不同状态下显示不同图片:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
 <item
        android:state_focused="true"
        android:state_pressed="false"
        android:drawable="@drawable/ic_fm_list"/>
    <item
        android:state_focused="true"
        android:state_pressed="true"
        android:drawable="@drawable/ic_fm_list_press"/>
    <item
        android:state_focused="false"
        android:state_pressed="true"
        android:drawable="@drawable/ic_fm_list_press"/>
    <item
        android:drawable="@drawable/ic_fm_list"/>
</selector>采用这样的方法,没有达到效果。之前在出来ImageButton采用这种方法可以。不知道menu为什么不行,请问该怎样实现?

解决方案 »

  1.   

    原始的menu:
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
      
        <item android:id="@+id/fm_channel_list"
              android:showAsAction ="always"
              android:title="@string/favorite_manager"
              android:icon="@drawable/ic_fm_list"
              style="@android:style/Widget.Holo.ActionButton.Overflow"//原始style,按下有蓝色背景
              //style="@style/style_fm_list"//自定义样式为了实现按下弹起显示不同图片
              />
    </menu>
    但通过这种方法没有变化,没有实现。不管怎样修改这个menu文件,都没效果
      

  2.   

    没有人修改过menu吗?实现像button一样,按下,弹起用xml文件显示不同的图片。
    尝试将原始的style="@android:style/Widget.Holo.ActionButton.Overflow"改成自己的
    style="@style/style_fm_list"没用。哪位有改过,请指点,谢谢!
      

  3.   

    lz可以参考用Popupwindow实现menu的功能,可以实现lz想要的效果
    具体案例网上都有.
      

  4.   

    谢谢3楼,主要是不想修改太多源码,想在现有的基础上修改,这个需求是FM模块的,所有仅修改这个模块。不影响其他的。是否可以通过style或者其他的文件进行修改?
      

  5.   

    通过自定义主题,把背景色去掉了,在点击popupMenu时在点击按钮或之外的空间,popupMenu消失,但图片没改变过来。
    如何获取popupMenu弹出还是隐藏的状态?需要根据这个状态来显示不同的图片效果
      

  6.   

    如何获取popupMenu弹出还是隐藏的状态?需要根据这个状态来显示点击操作用不同的图片显示效果
      

  7.   

    1, 
    <item name="android:actionOverflowButtonStyle">@style/Widget.ActionButton.Overflow</item>2,
        <style name="Widget.ActionButton.Overflow">
            <item name="android:src">@drawable/ic_menu_moreoverflow</item>
            <item name="android:background">@null</item>
            <item name="android:contentDescription">@string/action_menu_overflow_description</item>
        </style>3,
    ic_menu_moreoverflow.xml
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" android:drawable="@drawable/ic_menu_moreoverflow_p" />
        <item android:state_selected="true" android:drawable="@drawable/ic_menu_moreoverflow_p" />
        <item android:drawable="@drawable/ic_menu_moreoverflow_n" />
    </selector>
      

  8.   

    其中1,  完整一点
        <style name="AppTheme" parent="android:Theme.Holo">
               <item name="android:actionOverflowButtonStyle">@style/Widget.ActionButton.Overflow</item>
        </style>