【问题标题】:How to change the font of Action Bar's Option Menu Items Title?如何更改操作栏的选项菜单项标题的字体?
【发布时间】:2016-06-23 07:02:59
【问题描述】:

我正在尝试更改菜单项的字体样式,所以我想将 MenuItems 的字体样式设置为“Century-Gothic”。

下面是我的代码

menu.xml

 <item
        android:id="@+id/option_menu_item_1"
        android:orderInCategory="1"`enter code here`
        android:title="option_menu_item_1"
        app:showAsAction="never" />

    <item
        android:id="@+id/option_menu_item_2"
        android:orderInCategory="2"
        android:title="option_menu_item_2"
        app:showAsAction="never" />

    <item
        android:id="@+id/option_menu_item_3"
        android:orderInCategory="3"
        android:title="option_menu_item_3"
        app:showAsAction="never" />
</menu>

MainActivity.java

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try {
            ViewConfiguration config = ViewConfiguration.get(this);
            Field menuKeyField = ViewConfiguration.class
                    .getDeclaredField("sHasPermanentMenuKey");
            if (menuKeyField != null) {
                menuKeyField.setAccessible(true);
                menuKeyField.setBoolean(config, false);
            }
        } catch (Exception e) {     
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        return super.onCreateOptionsMenu(menu);

    }
}

color.xml

<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF00FF</color>
    <color name="skyBlue">#FF0000</color>
</resources>

styles.xml

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

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

        <item name="android:itemBackground">@color/skyBlue</item>
        <item name="android:textStyle">bold</item>
    </style>

</resources>

我得到如下图所示的输出

输出

但我想使用 gothic.ttf 资产文件字体将 MenuItem 标题字体更改为(Century-Gothic)。

【问题讨论】:

    标签: java android fonts


    【解决方案1】:

    styles.xml里面添加下面的代码

    <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
    

    styles.xml 看起来像这样。

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    
        <item name="android:itemBackground">@color/skyBlue</item>
        <item name="android:textStyle">bold</item>
       <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
    </style>
    
    <style name="MyActionBar.MenuTextStyle" parent="Theme.AppCompat">
        <item name="actionMenuTextColor">@color/white</item>
       <item name="android:actionMenuTextColor">@color/white</item>
    
    </style>
    

    然后为MyActionBar.MenuTextStyle 创建样式并根据需要更改TextView 属性。

    注意:你只能通过Java code使用custom fonts,不能通过 布局XMLstyles/themes

    更多详情请访问:Set specific font in a styles.xml

    【讨论】:

    • 但是我可以设置哥特式字体样式
    • @MadhushriM 你必须下载gothic font.ttf 文件并将其添加到assets 文件夹然后使用它。
    • 是的,我已经下载并保存在 assets 文件夹中.....但是如何在 Style.xml 中使用该文件重新
    • @MadhushriM 你无法在style 中更改TextFont,请参阅我的更新答案。
    • Ok ......那么如何在 MainActivity.java bcz in menu.xml 中调用该菜单标题它不是 Textview ,它只是标题
    猜你喜欢
    • 1970-01-01
    • 2014-12-05
    • 2014-01-20
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    相关资源
    最近更新 更多