คุณเปลี่ยนข้อความเป็นตัวหนาใน Android ได้อย่างไร


433

คุณเปลี่ยนการตั้งค่าข้อความ / แบบอักษรใน Android ได้TextViewอย่างไร

ตัวอย่างเช่นคุณจะทำให้ข้อความเป็นตัวหนาได้อย่างไร


กรุณาตรวจสอบของฉันคำตอบที่นี่ หวังว่าสิ่งนี้จะช่วยคุณได้
สรุป Jain

คำตอบ:


552

เมื่อต้องการทำสิ่งนี้ในlayout.xmlไฟล์:

android:textStyle

ตัวอย่าง:

android:textStyle="bold|italic"

วิธีการทางโปรแกรมคือ:

setTypeface(Typeface tf)

ตั้งค่าแบบอักษรและสไตล์ที่ข้อความควรจะแสดง โปรดทราบว่าไม่ใช่ว่าทุกTypefaceครอบครัวจะมีรูปแบบที่เป็นตัวหนาและตัวเอียงดังนั้นคุณอาจต้องใช้setTypeface(Typeface, int)เพื่อให้ได้ลักษณะที่คุณต้องการจริงๆ



77

เพียงคุณสามารถทำสิ่งต่อไปนี้:

ตั้งค่าคุณสมบัติเป็น XML

  android:textStyle="bold"

วิธีการคือ:

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

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

Tv.setTypeface(boldTypeface);

หวังว่านี่จะช่วยคุณขอบคุณ


แจ้งให้เราทราบผลลัพธ์
saeed

54

ใน XML

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

คุณสามารถใช้แบบอักษรที่เฉพาะเจาะจงsans, serifและ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)


20

สำหรับกรณีที่คุณใช้แบบอักษรที่กำหนดเอง แต่ไม่มีแบบอักษรหนาสำหรับแบบอักษรที่คุณสามารถใช้:

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



16

ในโลกอุดมคติคุณจะต้องตั้งค่าแอตทริบิวต์ลักษณะข้อความในคำจำกัดความ 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);

บรรทัดแรกจะสร้างรูปแบบวัตถุที่กำหนดไว้ล่วงหน้าสไตล์ (ในกรณีนี้Typeface.BOLDแต่มีอีกมากมายที่กำหนดไว้ล่วงหน้า) เมื่อเรามีอินสแตนซ์ของแบบอักษรเราสามารถตั้งค่าบน TextView และนั่นคือเนื้อหาของเราจะปรากฏในสไตล์ที่เรากำหนด

ฉันหวังว่ามันจะช่วยคุณได้มากสำหรับข้อมูลที่ดีกว่านี้คุณสามารถเยี่ยมชมได้

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


14

จาก 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);

10

กำหนดสไตล์ใหม่ด้วยรูปแบบที่คุณต้องการในไฟล์ 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"


6

สมมติว่าคุณเป็นผู้เริ่มต้นใหม่บน 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


5

คุณสามารถใช้สิ่งนี้เป็นตัวอักษร

สร้างชื่อคลาส TypefaceTextView และขยาย TextView

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"

4

4 วิธีในการทำให้ Android TextView เป็นตัวหนา - คำตอบเต็มรูปแบบอยู่ที่นี่

  1. ใช้android:คุณลักษณะtextStyle

    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TEXTVIEW 1" android:textStyle="bold" /> ใช้ตัวหนา | ตัวเอียงสำหรับตัวหนาและตัวเอียง

  2. ใช้วิธี setTypeface ()

    textview2.setTypeface(null, Typeface.BOLD);
    textview2.setText("TEXTVIEW 2");
  3. HtmlCompat.fromHtml () วิธีการ Html.fromHtml () ถูกคัดค้านในระดับ API 24

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

3

ในกรณีของฉันค่าการส่งผ่าน string.xml ทำงานกับแท็ก html

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


1
editText.setTypeface(Typeface.createFromAsset(getAssets(), ttfFilePath));
etitText.setTypeface(et.getTypeface(), Typeface.BOLD);

จะตั้งทั้งตัวพิมพ์และสไตล์ให้เป็นตัวหนา


2
คุณควรรวมคำอธิบายสั้น ๆ ของคำตอบของคุณเพื่ออธิบายถึงกรณีการใช้งานและการนำไปใช้
Dov Benyomin Sohacheski

นี่ไม่ได้โฆษณาอะไรใหม่สำหรับคำตอบที่มีอยู่
nvoigt

@nvoigt คำตอบของเขาแตกต่างจากคนอื่น ๆ อย่างน้อยบรรทัดที่สอง อาจดีกว่าโซลูชันอื่น ๆ ฉันคิดว่ามันถูกจับจากstackoverflow.com/questions/6200533/...
CoolMind
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.