Skip to content

textStyle

本文讲述textStyle,并不是styles.xml

在xml中设置android:textStyle,选择想要的效果。

有3个选项

  • normal 没有特殊效果,默认值
  • italic 斜体
  • bold 粗体

xml中设置

可以设置一个特性,例如斜体

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Fisher"
        android:textColor="#000000"
        android:textStyle="italic" />

斜体效果图

也可以同时设置2个特性,比如斜体并且加粗

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="bold|italic"
        android:textColor="#000000"
        android:textStyle="bold|italic" />

斜体与加粗效果图

代码中设置

使用TextView的setTypeface方法来设置字体效果。

tv1.setTypeface(null, Typeface.NORMAL); // 普通

tv1.setTypeface(null, Typeface.BOLD); // 加粗

tv2.setTypeface(null, Typeface.ITALIC); // 斜体

tv3.setTypeface(null, Typeface.BOLD_ITALIC); // 加粗和斜体

setTypeface(@Nullable Typeface tf, @Typeface.Style int style)有2个参数。 第一个是字体,这里可以忽略。 第二个是效果,有正常,加粗,斜体,加粗和斜体这几种可选。

斜体文字右边被切掉的问题

TextView设置了斜体后,显示效果像是被切掉了一块。

可以增加一个占位符&#x200A;来“撑开”TextView的宽度。

<string name="sample_text_1">显示效果&#x200A;</string>
<string name="sample_text_2">像是&#x200A;</string>
<string name="sample_text_3">被切掉了一块&#x200A;</string>

参考

https://stackoverflow.com/questions/4353836/italic-textview-with-wrap-contents-seems-to-clip-the-text-at-right-edge