Frage

Ich möchte ein TextView Inhalt fett machen, kursiv und unterstrichen. Ich habe versucht, den folgenden Code und es funktioniert, aber nicht unterstreichen.

<Textview android:textStyle="bold|italic" ..

Wie mache ich das? Jede schnelle Ideen?

War es hilfreich?

Lösung

Ich weiß nicht, über unterstreichen, sondern auch für fett und kursiv gibt es "bolditalic". Es gibt keine Erwähnung von Unterstrichen hier: http://developer.android .com / reference / android / Widget / TextView.html # attr_android: Textart

Wohlgemerkt, dass die genannten bolditalic zu verwenden, müssen Sie, ich zitiere aus dieser Seite

  

Muss ein oder mehr (getrennt durch ‚|‘) sein. Die folgende konstanten Werten

so würden Sie verwenden bold|italic

Sie könnten prüfen diese Frage für unterstrichen: kann ich unterstreichen Text in ein android-Layout?

Andere Tipps

Dies sollte Ihren Textview machen fett , unterstreicht und kursiv zur gleichen Zeit.

strings.xml

<resources>
    <string name="register"><u><b><i>Copyright</i></b></u></string>
</resources>

So legen Sie diese Zeichenfolge in Ihrem Textview, tun dies in der main.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/register" />

oder in JAVA ,

TextView textView = new TextView(this);
textView.setText(R.string.register);

Manchmal ist der oben genannte Ansatz wird nicht hilfreich sein, wenn Sie dynamischen Text haben könnten verwenden. Also in diesem Fall SpannableString kommt in die Tat umzusetzen.

String tempString="Copyright";
TextView text=(TextView)findViewById(R.id.text);
SpannableString spanString = new SpannableString(tempString);
spanString.setSpan(new UnderlineSpan(), 0, spanString.length(), 0);
spanString.setSpan(new StyleSpan(Typeface.BOLD), 0, spanString.length(), 0);
spanString.setSpan(new StyleSpan(Typeface.ITALIC), 0, spanString.length(), 0);
text.setText(spanString);

OUTPUT

eingeben Bild Beschreibung hier

Oder wie dies in Kotlin:

val tv = findViewById(R.id.textViewOne) as TextView
tv.setTypeface(null, Typeface.BOLD_ITALIC)
// OR
tv.setTypeface(null, Typeface.BOLD or Typeface.ITALIC)
// OR
tv.setTypeface(null, Typeface.BOLD)
// OR
tv.setTypeface(null, Typeface.ITALIC)
// AND
tv.paintFlags = tv.paintFlags or Paint.UNDERLINE_TEXT_FLAG

oder in Java:

TextView tv = (TextView)findViewById(R.id.textViewOne);
tv.setTypeface(null, Typeface.BOLD_ITALIC);
// OR
tv.setTypeface(null, Typeface.BOLD|Typeface.ITALIC);
// OR
tv.setTypeface(null, Typeface.BOLD);
// OR
tv.setTypeface(null, Typeface.ITALIC);
// AND
tv.setPaintFlags(tv.getPaintFlags()|Paint.UNDERLINE_TEXT_FLAG);

Halten Sie es einfach und in einer Zeile:)

Für fett und kursiv was auch immer Sie tun, folgenden Code ist korrekt für die Unterstreichungs Verwendung

HelloAndroid.java

 package com.example.helloandroid;

 import android.app.Activity;
 import android.os.Bundle;
 import android.text.SpannableString;
 import android.text.style.UnderlineSpan;
import android.widget.TextView;

public class HelloAndroid extends Activity {
TextView textview;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    textview = (TextView)findViewById(R.id.textview);
    SpannableString content = new SpannableString(getText(R.string.hello));
    content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
    textview.setText(content);
}
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/hello"
android:textStyle="bold|italic"/>

string.xml

<?xml version="1.0" encoding="utf-8"?>
 <resources>
  <string name="hello">Hello World, HelloAndroid!</string>
  <string name="app_name">Hello, Android</string>
</resources>

Dies ist eine einfache Möglichkeit, einen Unterstrich hinzuzufügen, während andere Einstellungen beibehalten:

textView.setPaintFlags(textView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);

Programmatialy:

Sie können tun setTypeface () -Methode programmatisch mit:

Unten ist der Code für die Standardschriftart

textView.setTypeface(null, Typeface.NORMAL);      // for Normal Text
textView.setTypeface(null, Typeface.BOLD);        // for Bold only
textView.setTypeface(null, Typeface.ITALIC);      // for Italic
textView.setTypeface(null, Typeface.BOLD_ITALIC); // for Bold and Italic

und wenn Sie wollen Satz benutzerdefinierte Schrift:

textView.setTypeface(textView.getTypeface(), Typeface.NORMAL);      // for Normal Text
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);        // for Bold only
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);      // for Italic
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC); // for Bold and Italic

XML:

Sie können direkt in XML-Datei festgelegt in wie:

android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"

Ohne Anführungszeichen funktioniert bei mir:

<item name="android:textStyle">bold|italic</item>

Wenn Sie diesen Text aus einer Datei oder aus dem Netz lesen.

Sie können es erreichen durch Hinzufügen von HTML-Tags zu Ihrem Text wie erwähnt

This text is <i>italic</i> and <b>bold</b>
and <u>underlined</u> <b><i><u>bolditalicunderlined</u></b></i>

und dann können Sie verwenden, um die HTML Klasse, die Prozesse HTML-Strings in darstellbaren styled Text.

// textString is the String after you retrieve it from the file
textView.setText(Html.fromHtml(textString));
    style="?android:attr/listSeparatorTextViewStyle
  • durch diesen Stil machen, kann u erreichen Unterstrichen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top