Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android自定义字体Span可设置字体Span_Android_Textview_Typeface_Custom Font - Fatal编程技术网

Android自定义字体Span可设置字体Span

Android自定义字体Span可设置字体Span,android,textview,typeface,custom-font,Android,Textview,Typeface,Custom Font,我在整个应用程序中使用Helvetica字体。目前,我正在创建独立于资源的字体。所以我要说这三个 HelveticaNeue = Typeface.createFromAsset(application.getAssets(), "fonts/HelveticaNeue.ttf"); HelveticaNeueBold = Typeface.createFromAsset(application.getAssets(), "fonts/HelveticaNeueBold.ttf"); Helve

我在整个应用程序中使用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");
当我用一种字体显示一个文本视图时,一切都很好。但是,我需要使用一个Spanable

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);

我想让绳子的一部分是Heleveticanuebold,另一部分是Helveticanueue。我认为需要向Android指出的是,上面的3种字体实际上是相关的,以便它可以很好地切换它们。正在寻找任何其他方法来实现这一点。

您将需要编写一个自定义字体span。好消息是它们并不难。请参阅以获取示例。

您可以执行以下操作:

SpannableString spannableString = new SpannableString("your text");
Typeface typeface = Typeface.create(ResourcesCompat.getFont(this, R.font.your_font);
spannableString.setSpan(
    new TypefaceSpan(typeface, Typeface.NORMAL)), 
    0, 4, 
    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

此构造函数将替换以前的文本样式,实现您想要的。然而,关键是它是在API 28中引入的。

您找到这个问题的答案了吗?请分享解决方案。我还想用两种Helvetica的字体来显示一个文本视图),谢谢。不需要自定义字体。这是答案