如何将字体样式添加到 textview android kotlin
How to add font style to textview android kotlin
我需要帮助,我陷入了困境。我的要求是,我需要在工具提示中添加文本。我确实那样做了。但是文本包括多行文本,还有一些行具有粗体样式,其他行具有常规样式和自定义字体样式。通过下面我正在使用的代码,我可以添加粗体、斜体和常规样式。但我需要在文本中添加以下自定义字体样式。请查看我的以下代码。
textViewToShow.setOnClickListener { view ->
val tfBold = Typeface.createFromAsset(
context!!.assets,
"fonts/myriad_pro_bold.ttf"
)
val tfRegular = Typeface.createFromAsset(
context!!.assets,
"fonts/myriad_pro_regular.ttf"
)
var string1 = “Item show in Bold style”
var string2 = “Item show in Regular style”
var string3 = “Item show in Regular style with item description”
val holesTextView = Html.fromHtml("<b>" + string1 + "</b> <br><br> <b><i>"+ string2 + "</i></b> " + string3)
showToolTip(view, holesTextView)
}
private fun showToolTip(view: View, holesTextView: Spanned) {
val builder: Tooltip.Builder =
Tooltip.Builder(view, R.style.Tooltip)
.setText(holesTextView)
builder.show()
}
任何 solution/suggestions 都非常感谢
我会创建一个 font family
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/myriad_pro_regular" />
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/myriad_pro_italic" />
<font
android:fontStyle="normal"
android:fontWeight="700"
android:font="@font/myriad_pro_bold" />
</font-family>
按照 的答案加粗字体。
然后您可以在布局中指定字体系列:
<EditText
android:fontFamily="@font/mycustomfont"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello, World!" />
或以编程方式:
val typeface = ResourcesCompat.getFont(context, R.font.mycustomfont)
holesTextView.setTypeface(typeface)
或者在 tooltip 的情况下使用其 setTypeface()
方法:
val typeface = ResourcesCompat.getFont(context, R.font.mycustomfont)
val builder: Tooltip.Builder = Tooltip.Builder(view, R.style.Tooltip)
.setText(holesTextView)
.setTypeface(typeface)
builder.show()
并且不推荐使用 HtmlCompat.fromHtml as Html.fromHtml:
val holesTextView = HtmlCompat.fromHtml("<b>" + string1 + "</b> <br><br> <b><i>"+ string2 + "</i></b> " + string3, HtmlCompat.FROM_HTML_MODE_LEGACY)
我需要帮助,我陷入了困境。我的要求是,我需要在工具提示中添加文本。我确实那样做了。但是文本包括多行文本,还有一些行具有粗体样式,其他行具有常规样式和自定义字体样式。通过下面我正在使用的代码,我可以添加粗体、斜体和常规样式。但我需要在文本中添加以下自定义字体样式。请查看我的以下代码。
textViewToShow.setOnClickListener { view ->
val tfBold = Typeface.createFromAsset(
context!!.assets,
"fonts/myriad_pro_bold.ttf"
)
val tfRegular = Typeface.createFromAsset(
context!!.assets,
"fonts/myriad_pro_regular.ttf"
)
var string1 = “Item show in Bold style”
var string2 = “Item show in Regular style”
var string3 = “Item show in Regular style with item description”
val holesTextView = Html.fromHtml("<b>" + string1 + "</b> <br><br> <b><i>"+ string2 + "</i></b> " + string3)
showToolTip(view, holesTextView)
}
private fun showToolTip(view: View, holesTextView: Spanned) {
val builder: Tooltip.Builder =
Tooltip.Builder(view, R.style.Tooltip)
.setText(holesTextView)
builder.show()
}
任何 solution/suggestions 都非常感谢
我会创建一个 font family
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/myriad_pro_regular" />
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/myriad_pro_italic" />
<font
android:fontStyle="normal"
android:fontWeight="700"
android:font="@font/myriad_pro_bold" />
</font-family>
按照
然后您可以在布局中指定字体系列:
<EditText
android:fontFamily="@font/mycustomfont"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello, World!" />
或以编程方式:
val typeface = ResourcesCompat.getFont(context, R.font.mycustomfont)
holesTextView.setTypeface(typeface)
或者在 tooltip 的情况下使用其 setTypeface()
方法:
val typeface = ResourcesCompat.getFont(context, R.font.mycustomfont)
val builder: Tooltip.Builder = Tooltip.Builder(view, R.style.Tooltip)
.setText(holesTextView)
.setTypeface(typeface)
builder.show()
并且不推荐使用 HtmlCompat.fromHtml as Html.fromHtml:
val holesTextView = HtmlCompat.fromHtml("<b>" + string1 + "</b> <br><br> <b><i>"+ string2 + "</i></b> " + string3, HtmlCompat.FROM_HTML_MODE_LEGACY)