如何在Android中将文本更改为粗体?

如何更改Android TextView中的文本/字体设置?

例如,如何使文本大胆的?

550816 次浏览

要在layout.xml文件中执行此操作:

android:textStyle

例子:

android:textStyle="bold|italic"

程序上的方法是:

setTypeface(Typeface tf)

设置应显示文本的字体和样式。注意,并不是所有的Typeface系列实际上都有粗体和斜体变体,所以你可能需要使用setTypeface(Typeface, int)来获得你真正想要的外观。

这是解决方案

TextView questionValue = (TextView) findViewById(R.layout.TextView01);
questionValue.setTypeface(null, Typeface.BOLD);

设置属性

android:textStyle="bold"

如果你在画它,那么这个就可以做到:

TextPaint.setFlags(Paint.FAKE_BOLD_TEXT_FLAG);

这很简单

setTypeface(Typeface.DEFAULT_BOLD);

在使用自定义字体,但没有粗体字体的情况下,可以使用:

myTextView.setText(Html.fromHtml("<b>" + myText + "</b>");

在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"

在XML中

android:textStyle="bold" //only bold
android:textStyle="italic" //only italic
android:textStyle="bold|italic" //bold & italic

你只能使用特定的字体sansserif &monospace通过xml, Java代码可以使用自定义字体

android:typeface="monospace" // or sans or serif

以编程方式(Java代码)

TextView textView = (TextView) findViewById(R.id.TextView1);


textView.setTypeface(Typeface.SANS_SERIF); //only font style
textView.setTypeface(null,Typeface.BOLD); //only text style(only bold)
textView.setTypeface(null,Typeface.BOLD_ITALIC); //only text style(bold & italic)
textView.setTypeface(Typeface.SANS_SERIF,Typeface.BOLD);
//font style & text style(only bold)
textView.setTypeface(Typeface.SANS_SERIF,Typeface.BOLD_ITALIC);
//font style & text style(bold & italic)

在理想的情况下,你应该在你的布局XML定义中设置文本样式属性,就像这样:

<TextView
android:id="@+id/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"/>

有一种简单的方法可以在代码中动态地实现相同的结果,即使用setTypeface方法。你需要传递字体类的一个对象,它将描述TextView的字体样式。因此,要实现与上面XML定义相同的结果,您可以执行以下操作:

TextView Tv = (TextView) findViewById(R.id.TextView);
Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD);
Tv.setTypeface(boldTypeface);

第一行将创建预定义样式的对象表单(在本例中为字体。大胆的,但还有更多预定义样式)。一旦我们有了一个字体实例,我们就可以在TextView上设置它。这就是我们的内容将显示在我们定义的样式上。

我希望这对你有很大帮助。欲了解更多信息,请访问

http://developer.android.com/reference/android/graphics/Typeface.html

你可以用这个字体

创建一个类名TypefaceTextView并扩展TextView

私有静态Map mTypefaces;

public TypefaceTextView(final Context context) {
this(context, null);
}


public TypefaceTextView(final Context context, final AttributeSet attrs) {
this(context, attrs, 0);
}


public TypefaceTextView(final Context context, final AttributeSet attrs, final int defStyle) {
super(context, attrs, defStyle);
if (mTypefaces == null) {
mTypefaces = new HashMap<String, Typeface>();
}


if (this.isInEditMode()) {
return;
}


final TypedArray array = context.obtainStyledAttributes(attrs, styleable.TypefaceTextView);
if (array != null) {
final String typefaceAssetPath = array.getString(
R.styleable.TypefaceTextView_customTypeface);


if (typefaceAssetPath != null) {
Typeface typeface = null;


if (mTypefaces.containsKey(typefaceAssetPath)) {
typeface = mTypefaces.get(typefaceAssetPath);
} else {
AssetManager assets = context.getAssets();
typeface = Typeface.createFromAsset(assets, typefaceAssetPath);
mTypefaces.put(typefaceAssetPath, typeface);
}


setTypeface(typeface);
}
array.recycle();
}
}

将字体粘贴到资源文件夹中创建的字体文件夹中

<packagename.TypefaceTextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1.5"
android:gravity="center"
android:text="TRENDING TURFS"
android:textColor="#000"
android:textSize="20sp"
app:customTypeface="fonts/pompiere.ttf" />**here pompiere.ttf is the font name**

将这些行放在xml的父布局中

 xmlns:app="http://schemas.android.com/apk/res/com.mediasters.wheresmyturf"
xmlns:custom="http://schemas.android.com/apk/res-auto"

你可以简单地做以下几点:

XML中设置属性

  android:textStyle="bold"

从程序上看,方法是:

TextView Tv = (TextView) findViewById(R.id.TextView);


Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD);


Tv.setTypeface(boldTypeface);

希望这能帮到你,谢谢。

最好的方法是:

TextView tv = findViewById(R.id.textView);
tv.setTypeface(Typeface.DEFAULT_BOLD);
假设你是Android Studio的新手, 你可以简单地在设计视图XML中使用

来完成
android:textStyle="bold"          //to make text bold
android:textStyle="italic"        //to make text italic
android:textStyle="bold|italic"   //to make text bold & italic
editText.setTypeface(Typeface.createFromAsset(getAssets(), ttfFilePath));
etitText.setTypeface(et.getTypeface(), Typeface.BOLD);

将字体和样式都设置为粗体。

在我的情况下,通过string.xml通过html标签传递值..

<string name="your_string_tag"> <b> your_text </b></string>

4种方法使Android TextView粗体-完整的答案在这里。

  1. 使用android: textStyle属性

    < p > <代码> & lt; TextView android: layout_width = " wrap_content " android: layout_height = " wrap_content " android:文本= " TEXTVIEW 1” android: textStyle =“大胆” /比;

  2. .

  3. 使用setTypeface()方法

    textview2.setTypeface(null, Typeface.BOLD);
    textview2.setText("TEXTVIEW 2");
    
  4. HtmlCompat.fromHtml() method, Html.fromHtml() was deprecated in API level 24.

     String html="This is <b>TEXTVIEW 3</b>";
    textview3.setText(HtmlCompat.fromHtml(html,Typeface.BOLD));
    

. xml文件中,设置

android:textStyle="bold"

将文本类型设置为粗体。

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

在Kotlin中,我们可以在一行中完成

 TEXT_VIEW_ID.typeface = Typeface.defaultFromStyle(Typeface.BOLD)

你可以这样做

ty.setTypeface(Typeface.createFromAsset(ctx.getAssets(), "fonts/magistral.ttf"), Typeface.BOLD);

通过XML:

 android:textStyle="bold"

通过Java:

//Let's say you have a textview
textview.setTypeface(null, Typeface.BOLD);
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())
}