【已解决】Android中菜单的字体太小了:设置actionbar中menu的text的size

【问题】

之前已经解决了菜单的动态显示问题:

【已解决】Android中动态显示或隐藏菜单

但是其中显示出来的菜单的字体,太小了:

都有点看不清了:

menu text size too small

想要调整菜单字体变大些。

【解决过程】

1.参考:

android – How to set a font for the Options menu? – Stack Overflow

去看看自己此处menu对应的xml,看看是否有对应的配置选项。

直接添加:

android:textSize="16sp"

为:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_discard"
        android:icon="@drawable/error_white"
        android:orderInCategory="1"
        android:showAsAction="ifRoom|withText"
        android:title="@string/discard"
        android:textSize="16sp"/>
    <item
        android:id="@+id/menu_send"
        android:icon="@drawable/forward_white"
        android:orderInCategory="2"
        android:showAsAction="ifRoom|withText"
        android:title="@string/send"
        android:textSize="16sp"/>

</menu>

看看效果:

结果没效果。

2.参考:

menuitem – How to change the Text color of Menu item in Android? – Stack Overflow

去添加自定义的style:

结果却发现没法添加。

3.参考:

MenuItem | Android Developers

也没看到有类似的

setText的appearance之类的

4.另外也去到xml中menu的item去动态找android:相关的属性:

menu item dynamic hint not found text size

很明显,也找不到和text size相关的配置。

5.参考:

How to style the menu items on an Android action bar – Stack Overflow

去找到自己的app的:

/res/values/styles.xml

其中有:

    <style name="AppTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarItemBackground">@drawable/selectable_background_xxxxxxx</item>
        <item name="android:popupMenuStyle">@style/PopupMenu.xxxxxxx</item>
        <item name="android:dropDownListViewStyle">@style/DropDownListView.xxxxxxx</item>
        <item name="android:actionBarTabStyle">@style/ActionBarTabStyle.xxxxxxx</item>
        <item name="android:actionDropDownStyle">@style/DropDownNav.xxxxxxx</item>
        <item name="android:actionBarStyle">@style/ActionBar.Solid.xxxxxxx</item>
        <item name="android:actionBarTabTextStyle">@style/Theme.xxxxxxx.ActionBar.TabTextStyle</item>
        <item name="android:actionModeBackground">@drawable/cab_background_top_xxxxxxx</item>
        <item name="android:actionModeSplitBackground">@drawable/cab_background_bottom_xxxxxxx</item>
        <item name="android:actionModeCloseButtonStyle">@style/ActionButton.CloseMode.xxxxxxx</item>
        <item name="android:radioButtonStyle">@style/RadioButtonxxxxxxx</item>
        <item name="android:editTextStyle">@style/EditTextxxxxxxx</item>
    </style>

    <style name="ActionBar.Solid.xxxxxxx" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
        <item name="android:background">@drawable/ab_solid_xxxxxxx</item>
        <item name="android:backgroundStacked">@drawable/ab_stacked_solid_xxxxxxx</item>
        <item name="android:backgroundSplit">@drawable/ab_bottom_solid_xxxxxxx</item>
        <item name="android:progressBarStyle">@style/ProgressBar.xxxxxxx</item>
        <item name="android:titleTextStyle">@style/Theme.xxxxxxx.ActionBar.TitleTextStyle</item>
    </style>

    <style name="Theme.xxxxxxx.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:textSize">15sp</item>
        <item name="android:textStyle">bold</item>
    </style>

所以,此处,找到了,就是:

ActionBar.TitleTextStyle

下面的:

<item name="android:textSize">15sp</item>

去改为别的值试试:

<item name="android:textSize">18sp</item>

但是感觉还是没有生效。。。

6.再参考:

How to style the menu items on an Android action bar – Stack Overflow

改为:

    <style name="AppTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarTabTextStyle">@style/Theme.xxxxxxx.ActionBar.TabTextStyle</item>
    </style>
    
    <style name="Theme.xxxxxxx.ActionBar.TabTextStyle" parent="@android:style/Widget.Holo.ActionBar.TabText">
        <item name="android:textColor">@color/yyyBlue1</item>
        <item name="android:textSize">16sp</item>
        <item name="android:textStyle">normal</item>
    </style>

还是不行。

7.再去试试actionMenuTextAppearance

    <style name="AppTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionMenuTextAppearance">@style/MenuTextStyle</item>
    </style>

    <style name="MenuTextStyle">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:textSize">18sp</item>
    </style>

结果是:

终于生效了:

android menu text size 18sp take effect

 

【总结】

android中,想要设置actionbar中的menu的text的size的话,

先要搞清楚,当前用了那个theme:

AndroidManifest.xml

中,我此处是:

    <application
	......
        android:theme="@style/AppTheme" >

然后找到对应的theme的定义:

res/values/styles.xml

中的:

<style name="AppTheme" parent="@android:style/Theme.Holo.Light">

然后添加上对应的android:actionMenuTextAppearance的定义:

    <style name="AppTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionMenuTextAppearance">@style/MenuTextStyle</item>
    </style>

    <style name="MenuTextStyle">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:textSize">18sp</item>
    </style>

如此,就可以设置对应的所要的Menu的text的style,包括文字的大小了。



6 Thoughts on “【已解决】Android中菜单的字体太小了:设置actionbar中menu的text的size

  1. 如何设置文字左边图表的大小啊?在模拟器上正常显示,但是部署在真实的手机上后,图片和文字挤在了一起。另外按照楼主的做法设置了以后没有任何效果的呢,测试收回魅族5.1的系统

  2. 如何设置文字左边图表的大小啊?

  3. 感谢博主 已解决。。。

  4. 最重要的是解决方法的思路,真是太棒了!

  5. Pingback: 更改ActionBar中Menu字体大小 | 猥琐在飞

  6. 你总结的解决方法在android 2.x上没用

发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量