如何改变文本/字体设置在一个Android TextView?
例如,如何使文本加粗?
如何改变文本/字体设置在一个Android TextView?
例如,如何使文本加粗?
当前回答
在使用自定义字体,但没有粗体字体的情况下,可以使用:
myTextView.setText(Html.fromHtml("<b>" + myText + "</b>");
其他回答
从XML中,您可以将textStyle设置为粗体,如下所示
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bold text"
android:textStyle="bold"/>
您可以像下面这样通过编程方式将TextView设置为粗体
textview.setTypeface(Typeface.DEFAULT_BOLD);
在理想的情况下,你应该在你的布局XML定义中设置文本样式属性,就像这样:
<TextView
android:id="@+id/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"/>
通过使用setTypeface方法,有一个简单的方法可以在代码中动态地实现相同的结果。你需要传递一个Typeface类的对象,它将描述TextView的字体样式。因此,要实现与上面XML定义相同的结果,您可以执行以下操作:
TextView Tv = (TextView) findViewById(R.id.TextView);
Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD);
Tv.setTypeface(boldTypeface);
第一行将创建对象表单预定义的样式(在本例中为字体。BOLD,但还有更多预定义的)。一旦我们有了一个字体实例,我们就可以在TextView上设置它。这就是我们的内容将显示在我们定义的样式上。
我希望这对你有很大帮助。欲了解更多信息,请访问
http://developer.android.com/reference/android/graphics/Typeface.html
在values文件夹中的style.xml文件中定义一个新的样式,使用您想要的格式
<style name="TextViewStyle" parent="AppBaseTheme">
<item name="android:textStyle">bold</item>
<item name="android:typeface">monospace</item>
<item name="android:textSize">16sp</item>
<item name="android:textColor">#5EADED</item>
</style>
然后通过编写以下带有TextView属性的代码将此样式应用到TextView
style="@style/TextViewStyle"
textView.setPaintFlags(textView.getPaintFlags() | Paint.FAKE_BOLD_TEXT_FLAG)
要移除,请使用
textView.setPaintFlags(textView.getPaintFlags() & ~Paint.FAKE_BOLD_TEXT_FLAG)
或者用Kotlin:
fun TextView.makeBold() {
this.paintFlags = this.paintFlags or Paint.FAKE_BOLD_TEXT_FLAG
}
fun TextView.removeBold() {
this.paintFlags = this.paintFlags and (Paint.FAKE_BOLD_TEXT_FLAG.inv())
}
如果你在画它,那么这个就可以做到:
TextPaint.setFlags(Paint.FAKE_BOLD_TEXT_FLAG);