Gibt es eine Möglichkeit, das textStyle
Attribut eines TextView
programmgesteuert festzulegen? Es scheint keine setTextStyle()
Methode zu geben.
Um klar zu sein, ich spreche nicht über Ansichts- / Widget-Stile! Ich spreche von Folgendem:
<TextView
android:id="@+id/my_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World"
android:textStyle="bold" />
Antworten:
setTypeface ist das Attribut textStyle.
Wie Shankar V hinzufügte, können Sie Folgendes verwenden, um die zuvor festgelegten Schriftattribute beizubehalten:
quelle
textview.setTypeface(textview.getTypeface(), Typeface.DEFAULT_BOLD);
textview.getTypeface().getStyle()
istandroid:textStyle
Angenommen, Sie haben einen Stil namens RedHUGEText für Ihre Werte / styles.xml:
Erstellen Sie einfach Ihre Textansicht wie gewohnt in der Datei XML layout / your_layout.xml. Nehmen wir an:
Und im Java-Code Ihrer Aktivität tun Sie Folgendes:
Es hat bei mir funktioniert! Und es hat Farbe, Größe, Schwerkraft usw. angewendet. Ich habe es ohne Probleme auf Handys und Tablets mit Android-API-Stufen von 8 bis 17 verwendet. Beachten Sie, dass diese Methode ab Android 23 veraltet ist. Das Kontextargument wurde gelöscht, daher müsste die letzte Zeile lauten:
Denken Sie daran ... dies ist nur dann nützlich, wenn der Stil des Textes wirklich von einer Bedingung in Ihrer Java-Logik abhängt oder Sie die Benutzeroberfläche "on the fly" mit Code erstellen ... wenn dies nicht der Fall ist, ist es besser, einfach machen:
Sie können es immer so haben, wie Sie es wollen!
quelle
<style>
Tag definiert werden können . Es macht die üblichen (Größe, Farbe, Stil), aber wendet keine anderen an (einschließlich Polsterung, Hintergrund, Schwerkraft usw.)Suche nach
setTextAppearance
oder auchsetTextTypeface
. Es gibt eine ähnliche Frage zum Stackoverflow: So ändern Sie den Stil einer TextView zur Laufzeitquelle
Es gibt so viele Möglichkeiten, um diese Aufgabe zu erfüllen:
1.
2.
3.
4.
oder wenn du durch xml willst
quelle
• •
Kotlin Version
So behalten Sie die aktuelle Schriftart zusätzlich zum Textstil bei:
quelle
Diese Frage wird an vielen Stellen auf viele verschiedene Arten gestellt. Ich antwortete , es ursprünglich hier , aber ich fühle es auch in diesem Thread relevant ist (da ich am Ende hier gelandet bin, als ich nach einer Antwort gesucht habe).
Es gibt keine einzeilige Lösung für dieses Problem, aber dies hat für meinen Anwendungsfall funktioniert. Das Problem ist, dass der Konstruktor 'View (context, attrs, defStyle)' nicht auf einen tatsächlichen Stil verweist, sondern ein Attribut benötigt. Wir werden:
Definieren Sie in 'res / values / attrs.xml' ein neues Attribut:
In res / values / styles.xml 'werde ich den Stil erstellen, den ich in meiner benutzerdefinierten Textansicht verwenden möchte
Ändern Sie in 'res / values / theme.xml' oder 'res / values / styles.xml' das Thema für Ihre Anwendung / Aktivität und fügen Sie den folgenden Stil hinzu:
Schließlich können Sie in Ihrer benutzerdefinierten Textansicht jetzt den Konstruktor mit dem Attribut verwenden, und er erhält Ihren Stil
Es ist erwähnenswert, dass ich customTextView wiederholt in verschiedenen Varianten und an verschiedenen Stellen verwendet habe, aber es ist in keiner Weise erforderlich, dass der Name der Ansicht mit dem Stil oder dem Attribut oder irgendetwas übereinstimmt. Diese Technik sollte auch mit jeder benutzerdefinierten Ansicht funktionieren, nicht nur mit TextViews.
quelle
Das hat bei mir funktioniert
oder
quelle
Ich habe es mit zwei einfachen Methoden gelöst.
Folgen Sie der Erklärung.
Meine bestehende Stilerklärung:
Mein Android Java Code:
Grüße.
quelle
Sie können diesen versuchen
quelle
Da
setTextAppearance(resId)
nur für API 23 und höher verfügbar ist, verwenden Sie:TextViewCompat.setTextAppearance(textViewGoesHere, resId)
Diese Methode wird intern wie folgt implementiert:
quelle
Wie hier erwähnt , wird diese Funktion derzeit nicht unterstützt.
quelle