最新消息:服务器现已从linode换到fzhost.net,且主题已从retina 0.2换为大前端D8

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

Android crifan 96浏览 0评论

【问题】

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

【已解决】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,包括文字的大小了。

转载请注明:在路上 » 【已解决】Android中菜单的字体太小了:设置actionbar中menu的text的size

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (7)

  1. 赞 就是要找这么细致的解答 总有一个解决方法适合你~
    Noelle6个月前 (01-21)回复
  2. 如何设置文字左边图表的大小啊?在模拟器上正常显示,但是部署在真实的手机上后,图片和文字挤在了一起。另外按照楼主的做法设置了以后没有任何效果的呢,测试收回魅族5.1的系统
    ylxb1年前 (2016-05-31)回复
  3. 如何设置文字左边图表的大小啊?
    ylxb1年前 (2016-05-31)回复
  4. 感谢博主 已解决。。。
    hunji2年前 (2015-11-27)回复
  5. 最重要的是解决方法的思路,真是太棒了!
    涂雨清2年前 (2015-04-09)回复
  6. 你总结的解决方法在android 2.x上没用
    ccc3年前 (2014-07-10)回复
54 queries in 0.423 seconds, using 12.64MB memory