web-dev-qa-db-de.com

Wie kann ich den Schriftstil in einer Android TextView fett, kursiv und unterstrichen einstellen?

Ich möchte den Inhalt von TextView fett, kursiv und unterstrichen gestalten. Ich habe den folgenden Code ausprobiert und er funktioniert, aber er wird nicht unterstrichen.

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

Wie mache ich es? Irgendwelche schnellen Ideen?

407
d-man

Ich weiß nichts über Unterstreichen, aber für fett und kursiv gibt es "bolditalic". Hier wird keine Unterstreichung erwähnt: http://developer.Android.com/reference/Android/widget/TextView.html#attr_Android:textStyle

Um das erwähnte bolditalic zu verwenden, müssen Sie sich wohlgemerkt darum kümmern, und ich zitiere von dieser Seite

Muss einer oder mehrere der folgenden konstanten Werte sein (durch '|' getrennt).

also würdest du bold|italic verwenden

Sie können diese Frage auf Unterstreichung prüfen: Kann ich Text in einem Android Layout unterstreichen?

258
Nanne

Dies sollte Ihre Textansicht fett , unterstrichen und gleichzeitig kursiv .

strings.xml

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

Um diesen String auf Ihre TextView zu setzen, führen Sie dies in Ihrer main.xml aus

<?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 beschriebene Ansatz nicht hilfreich, wenn Sie möglicherweise dynamischen Text verwenden müssen. In diesem Fall tritt SpannableString in Aktion.

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

enter image description here

349
Andro Selva

Oder einfach so 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);

Halte es einfach und in einer Zeile :)

133
h0ussni

Für fett und kursiv, was auch immer Sie tun, verwenden Sie den folgenden Code

HalloAndroid.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>
74
Vivek

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

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

Programmatik:

Sie können mit der setTypeface () -Methode programmgesteuert vorgehen:

Unten finden Sie den Code für die Standardschrift

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 eine benutzerdefinierte Schriftart festlegen möchten:

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 einer XML-Datei Folgendes festlegen:

Android:textStyle="normal"
Android:textStyle="normal|bold"
Android:textStyle="normal|italic"
Android:textStyle="bold"
Android:textStyle="bold|italic"
35
King of Masses

Ohne Anführungszeichen funktioniert bei mir:

<item name="Android:textStyle">bold|italic</item>
20
Lotfi

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

Sie können dies erreichen, indem Sie wie erwähnt HTML-Tags zu Ihrem Text hinzufügen

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 die Klasse HTML verwenden, die HTML-Zeichenfolgen in anzeigbaren gestalteten Text umwandelt.

// textString is the String after you retrieve it from the file
textView.setText(Html.fromHtml(textString));
20
Ahmed Hegazy
    style="?android:attr/listSeparatorTextViewStyle
  • durch diesen Stil können Sie Unterstreichungen erzielen
5
dreamdeveloper