繁体   English   中英

如何更改Action Bar的选项菜单项标题的字体?

[英]How to change the font of Action Bar's Option Menu Items Title?

我试图更改菜单项的字体样式,所以我想设置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 Assets文件字体将MenuItem标题字体更改为(Century-Gothic)。

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

有关更多详细信息,请访问: 在styles.xml中设置特定字体

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM