我试图更改菜单项的字体样式,所以我想设置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)。
答案 0 :(得分:0)
在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
属性。
注意:您只能通过
custom fonts
使用Java code
,而不能通过XML
布局styles/themes
或{{1}}。
有关详细信息,请访问:Set specific font in a styles.xml