我正在尝试找出使用自定义字体作为工具栏标题的正确方法,并将其置于工具栏中(客户端要求).
目前,我正在使用旧的ActionBar,我将标题设置为空值,并使用setCustomView自定义字体TextView并使用ActionBar.LayoutParams将其居中.
有没有更好的方法呢?使用新工具栏作为我的ActionBar.
android android-layout android-theme android-styles android-toolbar
我需要创建一个放在TextView中的String,它将显示如下字符串:
第一部分不大胆 大胆 休息不大胆
所以我想知道如何使用它SpannableStringBuilder来做到这一点?
我可以使用三个TextEdit来完成这个,但我想使用最佳解决方案.
我有Spannable对象,我想通过我之前加载的自定义字体设置其字体.
Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/font_Name.ttf");
Spannable span1 = /*Spannable Item*/;
/// I want to set span1 to have tf font face???
/// Here where I want help.
Run Code Online (Sandbox Code Playgroud)
编辑:
我的问题是我想为文本视图设置两种不同的自定义字体,所以我正在使用Spannable
假设我有下一个文本:
你好stackOverflow
我希望将第二个单词设置为RelativeSizeSpan(设置相对字体大小)和TextAppearanceSpan(设置文本的颜色),如何将它们合并?
我所知道的是我可以选择其中一个,例如使用下一个代码:
final SpannableString textToShow = new SpannableString("Hello stackOverflow");
textToShow.setSpan(new RelativeSizeSpan(1.5f), textToShow.length() - "stackOverflow".length(),textToShow.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(textToShow);
Run Code Online (Sandbox Code Playgroud)
但我还需要设置颜色,甚至添加其他跨越类的其他功能......
我能做什么 ?
我想TextView用a 设置第一个字符,用TypeFace另一个Type面设置第二个字符,依此类推.
我读了这个例子:
Spannable str = (Spannable) textView.getText();
str.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0, 7
,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Run Code Online (Sandbox Code Playgroud)
但它没有帮助我,因为我想设置多个TypeFace (external TTFs)
任何想法?
我想将两种不同的字体样式应用于单个TextView中的文本.
我的情况与Android相同- 两个句子,两个样式,一个TextView.唯一的区别是我想在整个文本上设置自定义字体.我已将Helvetica Font作为资产包含在我的项目中,并希望将该字体应用于TextView,文本的第一部分将是Helvetica BOLD,其余部分为Helvetica NORMAL.有什么建议怎么办?
需要以下格式的文字.具有不同样式和单个textview的自定义文本.

我有以下Android Java和XML代码.我想更改我的应用程序的菜单项的字体.我只知道我们可以使用setTypeface更改TextView的字体,但无论如何都无法找到菜单项.
JAVA代码 - :
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_refresh1:
Toast.makeText(this, "Item1 Selected", Toast.LENGTH_SHORT)
.show();
break;
case R.id.action_refresh2:
Toast.makeText(this, "Item2 Selected", Toast.LENGTH_SHORT)
.show();
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
XML代码 - :
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_refresh1"
android:orderInCategory="100"
android:showAsAction="always"
android:title="Item1"/>
<item
android:id="@+id/action_refresh2"
android:orderInCategory="100"
android:showAsAction="always"
android:title="Item2"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
我想更改两个菜单项的字体,但不知道如何为菜单项集成settypface.
我在整个应用程序中使用Helvetica字体.目前我正在与资产分开创建字体.所以我说这三个
HelveticaNeue = Typeface.createFromAsset(application.getAssets(), "fonts/HelveticaNeue.ttf");
HelveticaNeueBold = Typeface.createFromAsset(application.getAssets(), "fonts/HelveticaNeueBold.ttf");
HelveticaNeueBoldItalic = Typeface.createFromAsset(application.getAssets(), "fonts/HelveticaNeueBoldItalic.ttf");
Run Code Online (Sandbox Code Playgroud)
当我为一个TextView使用一种字体时,一切都很好用.但是,我需要使用spannable
Spannable WordtoSpan = new SpannableString("This text should be normal, but this needs to be bold, and normal");
WordtoSpan.setSpan(new TypefaceSpan("bold"), 5, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Run Code Online (Sandbox Code Playgroud)
而且我想让部分字符串为HeleveticaNeueBold,而有些则只是HelveticaNeue.我认为我需要的是向Android表明上面的3种字体实际上是相关的,以便它可以很好地切换它们.寻找任何其他方式来做到这一点.
我有一个TextView,其间有一个巨大的文本我有一个泰米尔语单词,我知道如何在单独的textview中嵌入泰米尔字体.但我需要英语单词之间的泰米尔语请提前帮助谢谢
我在textview中的部分文字:
Kolam使用了欢迎(நல்வரவு)等季节性消息.当一个奉献者的时候,有时候会在寺庙里做志愿者去画kolam
支持库(此处为docs )允许您在XML中使用"res/font"文件夹中的TTF字体文件:
app:fontFamily="@font/lato_black"
Run Code Online (Sandbox Code Playgroud)
或通过代码:
val typeface = ResourcesCompat.getFont(context, R.font.lato_black)
Run Code Online (Sandbox Code Playgroud)
虽然我知道可以使用spannable技术在TextView内容的部分内容中设置不同的样式(例如粗体,斜体,颜色等等),但我发现设置不同字体的唯一方法就是使用内置在操作系统的字体,如这里,但我不能看到一个办法做到这一点的加载字体的新途径.
我试图找到一种方法来转换两者,但没有运气.当然,我也试图在可能的功能的文档中找到,并且我试图通过互联网找到它.
如何为TextView的不同部分设置不同的字体?
例如,在文本"Hello world"中,将"Hello"设置为"lato_black"的字体,其余为默认值.
编辑:由于我得到了来自两个不同的人的相同答案,我不能接受另一个.给他们两个+1的努力,我已经改变了一点问题:
我如何轻松地将字体样式设置为文本的一部分,同时让strings.xml文件使用自定义字体标记定义它.
例如,这可以在strings.xml文件中进行设置,如上所述:
<string name="something" ><customFont fontResource="lato_black">Hello</customFont> world</string>
Run Code Online (Sandbox Code Playgroud)
然后,在代码中,您要做的就是使用以下内容:
textView.setText (Html.fromHtml(text, null, CustomFontTagHandler()))
Run Code Online (Sandbox Code Playgroud)
我认为这非常重要,因为翻译后的字符串可能与英语中的字符串差别太大,因此您不能只解析字符串的文本,然后选择设置自定义字体的位置.它必须在strings文件中.