【问题标题】:How to change the Menu text size如何更改菜单文字大小
【发布时间】:2015-04-24 09:42:20
【问题描述】:

我曾尝试像这样更改样式:

<item name="android:actionMenuTextAppearance">@style/MenuTextStyle</item>
<stylename="MenuTextStyle"parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Menu">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:textSize">16sp</item>
</style>

但它确实奏效了。 对不起我的英语不好。 如果你知道,请告诉我。提前谢谢!

【问题讨论】:

标签: android menu text-size


【解决方案1】:

在您的应用程序的基本主题中,添加以下项目:

<item name="android:actionMenuTextAppearance">@style/customActionBar</item>

然后定义customActionBar如下:

<style name="customActionBar" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Menu">
    <item name="android:textSize">16sp</item>
</style>

【讨论】:

  • 我在我的应用程序中使用工具栏,所以不能使用像 xxx.ActionBar.menu 这样的样式。
【解决方案2】:

在这里,您应该在 onCreateOptionsMenu 中从 MenuItems 获取文本到 SpannableStrings,通过 RelativeSizeSpan 将文本大小更改为默认大小。如果要输入绝对字体大小,请使用 AbsoluteSizeSpan,例如到 18 dpi = AbsoluteSizeSpan(18,true):

public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    MenuInflater infl = getMenuInflater();
    infl.inflate(R.menu.menu_main, menu);
    for(int i = 0; i < menu.size(); i++) {
        MenuItem item = menu.getItem(i);
    SpannableString spanString = new SpannableString(menu.getItem(i).getTitle().toString());
        int end = spanString.length();
    spanString.setSpan(new RelativeSizeSpan(1.5f), 0, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    item.setTitle(spanString);
}
    return true;
}

【讨论】:

  • 现在给出解释。
猜你喜欢
  • 2019-11-07
  • 2017-11-30
  • 1970-01-01
  • 2014-07-13
  • 2015-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多