使TextView使用具有不同样式(常规和斜体)的自定义字体

Netimen

我有一个TextView,我需要在其上显示以下字符串:“ Some text ”。我希望TextView为此使用自定义字体。所以我需要获得以下输出:在此处输入图片说明

我尝试了以下代码:

    textView.setText("some <i>text</i>");
    final Typeface typeface = Typeface.createFromAsset(getActivity().getAssets(), "customfont-regular.otf");
    if (typeface != null)
        textView.setTypeface(typeface);

但是结果是:在此处输入图片说明,因此斜体实际上是假的,由系统生成。然后我尝试了以下方法:

    textView.setText("some <i>text</i>");
    final Typeface typeface = Typeface.createFromAsset(getActivity().getAssets(), "customfont-regular.otf");
    if (typeface != null)
        textView.setTypeface(typeface, Typeface.NORMAL);
    final Typeface typefaceItalic = Typeface.createFromAsset(getActivity().getAssets(), "customfont-italic.otf");
    if (typefaceItalic != null)
        textView.setTypeface(typefaceItalic, Typeface.ITALIC);

但是输出是全斜体! 在此处输入图片说明

因此,如何在单个TextView中结合常规和斜体的自定义字体?

Netimen

经过研究,我找到了以下解决方案:

    final Typeface typefaceItalic = Typeface.createFromAsset(getActivity().getAssets(), "customfont-italic.otf");

    // there is no easy way in Android to make a single TextView display text using custom typeface with different styles (regular and italic). We need to replace all Italic spans with custom typeface spans for this.
    final SpannableString text = new SpannableString("some <i>text</i>");
    final StyleSpan[] spans = text.getSpans(0, text.length(), StyleSpan.class);
    for (StyleSpan span : spans) {
        if (span.getStyle() == Typeface.ITALIC) {
            text.setSpan(new CustomTypefaceSpan("customfont", italicTypeface), text.getSpanStart(span), text.getSpanEnd(span), 0);
            text.removeSpan(span);
        }
    }
    textView.setText(text);

    final Typeface typeface = Typeface.createFromAsset(getActivity().getAssets(), "customfont-regular.otf");
    if (typeface != null)
        textView.setTypeface(typeface, Typeface.NORMAL);

CustomTypefaceSpan是此处描述的类:https : //stackoverflow.com/a/4826885/190148

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使TextView使用具有不同样式(常规和斜体)的自定义字体

来自分类Dev

如何为自定义字体使用粗体,常规和斜体字体样式?

来自分类Dev

在带有自定义字体的文本视图中设置粗体和斜体样式(以编程方式)

来自分类Dev

Angular 11-将具有不同样式的图标添加到自定义按钮组件

来自分类常见问题

如何在iOS7中使用具有动态文本大小的自定义字体

来自分类Dev

使用具有不同高度的自定义委托时,QListView无法正确调整行高

来自分类Dev

具有自定义字体的MessageBox?

来自分类Dev

具有自定义字体的AlertDialogPro

来自分类Dev

如何在android textview中进行文本对齐,同时使用自定义字体样式?

来自分类Dev

带有字体样式的自定义按钮样式

来自分类Dev

不同样式的段落的Wordpress自定义帖子类型

来自分类Dev

不同样式的字体图标

来自分类Dev

不同样式的字体图标

来自分类Dev

添加具有自定义字体(字体)的CSS文件

来自分类Dev

CSS 样式的自定义字体字体

来自分类Dev

使用具有自定义客户端登录页面的IdentityServer登录

来自分类Dev

使用具有自定义功能的ddply + mutate吗?

来自分类Dev

在事件中使用具有自定义参数的委托

来自分类Dev

Python使用具有自定义全局变量的exec

来自分类Dev

使用具有自定义功能接口的流

来自分类Dev

元帅无法使用具有自定义大小的枚举字段的结构

来自分类Dev

使用具有自定义数据类型的async_work_group_copy

来自分类Dev

在Google Apps脚本上使用具有自定义功能的触发器

来自分类Dev

如何在Highcharts中使用具有默认打印选项的自定义下载按钮?

来自分类Dev

使用具有自定义功能接口的流

来自分类Dev

使用具有自定义延迟的 javascript 在循环中动态更改包装器背景

来自分类Dev

使用具有自定义格式的时刻格式化日期

来自分类Dev

Archlinux如何从常规字体生成斜体样式

来自分类Dev

在样式属性中使用自定义字体

Related 相关文章

  1. 1

    使TextView使用具有不同样式(常规和斜体)的自定义字体

  2. 2

    如何为自定义字体使用粗体,常规和斜体字体样式?

  3. 3

    在带有自定义字体的文本视图中设置粗体和斜体样式(以编程方式)

  4. 4

    Angular 11-将具有不同样式的图标添加到自定义按钮组件

  5. 5

    如何在iOS7中使用具有动态文本大小的自定义字体

  6. 6

    使用具有不同高度的自定义委托时,QListView无法正确调整行高

  7. 7

    具有自定义字体的MessageBox?

  8. 8

    具有自定义字体的AlertDialogPro

  9. 9

    如何在android textview中进行文本对齐,同时使用自定义字体样式?

  10. 10

    带有字体样式的自定义按钮样式

  11. 11

    不同样式的段落的Wordpress自定义帖子类型

  12. 12

    不同样式的字体图标

  13. 13

    不同样式的字体图标

  14. 14

    添加具有自定义字体(字体)的CSS文件

  15. 15

    CSS 样式的自定义字体字体

  16. 16

    使用具有自定义客户端登录页面的IdentityServer登录

  17. 17

    使用具有自定义功能的ddply + mutate吗?

  18. 18

    在事件中使用具有自定义参数的委托

  19. 19

    Python使用具有自定义全局变量的exec

  20. 20

    使用具有自定义功能接口的流

  21. 21

    元帅无法使用具有自定义大小的枚举字段的结构

  22. 22

    使用具有自定义数据类型的async_work_group_copy

  23. 23

    在Google Apps脚本上使用具有自定义功能的触发器

  24. 24

    如何在Highcharts中使用具有默认打印选项的自定义下载按钮?

  25. 25

    使用具有自定义功能接口的流

  26. 26

    使用具有自定义延迟的 javascript 在循环中动态更改包装器背景

  27. 27

    使用具有自定义格式的时刻格式化日期

  28. 28

    Archlinux如何从常规字体生成斜体样式

  29. 29

    在样式属性中使用自定义字体

热门标签

归档