Wie stelle ich die Textfarbe in der Android-App für den gesamten Text ein?

Lesezeit: 4 Minuten

Benutzer-Avatar
Jamesc

Ich möchte eine Standardtextfarbe für meine Android-App definieren.

Ich habe eine Basis-Aktivitätsklasse, aus der alle Aktivitäten erweitert werden, und ich dachte, dies könnte ein guter Ort sein, um die Farben zu definieren.

Wenn nicht, was ist eine bessere Lösung? Vielleicht Stile?

Das Problem ist, dass alles neu für mich ist, also zögern Sie nicht, mich zu beraten und auch Code-Snippets und Erklärungen bereitzustellen.

So sieht meine Basisklasse aus. Wie Sie sehen können, ist es ziemlich leer

package com.ccslocal.mobile.quiz.jls;

import android.app.Activity;
import android.os.Bundle;

public class BaseActivity extends Activity {
    //set up app preferences here
}

Benutzer-Avatar
Das es

Wie in der Antwort von denis.solonenko erwähnt, wäre der richtige Ansatz, Ihr Thema zu ändern.

An der Stelle, an der Sie Ihr Design definieren (in Ihrer Datei themes.xml oder styles.xml), sollten Sie so etwas hinzufügen:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    ...
    <item name="android:textColor">#FF00FF</item>
    ...
</style>

Stellen Sie dann sicher, dass das Design auf Ihre Aktivität oder Anwendung im Manifest angewendet wird:

<application
    ...
    android:theme="@style/AppTheme"
    .... 
    >

Sie können auch Folgendes definieren:

  • textColor – Die Standard-Textfarbe jeder gegebenen Ansicht
  • textColorPrimary – Die Standardtextfarbe für aktivierte Schaltflächen und große Textansichten
  • textColorSecondary – Die Standardtextfarbe für mittlere und kleine Textansichten
  • textColorTertiär – ?

(Quelle TextColor vs. TextColorPrimary vs. TextColorSecondary)

Denken Sie daran, dass viele andere Dinge diese vordefinierten Farben außer Kraft setzen können, z. B. angewendete Stile oder Definitionen in verschiedenen Ressourcenordnern.

Hier finden Sie eine vollständige Liste der Themenelemente: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml

  • Das hat mir sehr geholfen, obwohl ich verwendet habe name="android:textColor" Anstatt von name="android:textColorPrimary".

    – jahu

    23. August 2014 um 19:47 Uhr

Erstellen Sie ein benutzerdefiniertes Design für Ihre App. Schauen Sie sich die an offizieller Führer.

  • Gibt es eine allgemeinere Lösung? Es scheint seltsam, dass ich in einer OO-Sprache alle meine Textansichten besuchen muss, um einen Standardstil anzuwenden.

    – Jamesc

    3. August 2011 um 4:47 Uhr

  • @jamesw Ich glaube, diese Frage wurde an Labeeb P 🙂 gerichtet. Thema ist die generische Lösung

    – denis.solonenko

    3. August 2011 um 4:56 Uhr

  • Danke für die Antwort, die Frage war an Sie gerichtet. Ich kann keine Möglichkeit finden, die Schriftfarbe in einem Stil festzulegen, bei der nicht alle Textansichten besucht werden müssen, um ihnen mitzuteilen, dass sie einen Stil verwenden sollen. Was vermisse ich?

    – Jamesc

    3. August 2011 um 5:04 Uhr

  • @jamesw Sehen Sie sich bitte den Abschnitt „Ein Design auf eine Aktivität oder Anwendung anwenden“ an. Sie können Ihr benutzerdefiniertes Design definieren, das sich vom Standarddesign “erweitert”, und einige bestimmte Attribute wie die Standardtextfarbe in Ihrem Fall überschreiben. Konfigurieren Sie dann dieses Design in AndroidManifest.xml

    – denis.solonenko

    3. August 2011 um 5:14 Uhr

Benutzer-Avatar
und Entwickler

Ja, Sie haben Recht, Sie können das mit Stil machen. Oder Sie können verwenden TextView.getTextColors().getDefaultColor() zum Festlegen der Standardtextfarbe. Eigentlich habe ich das nie benutzt, aber ich denke, es könnte Ihnen helfen.

Für Stil

<style name="TextColor">
    <item name="android:textColor">#00FF00</item>
</style>      

Dann in Layout-Datei

<TextView  style="@style/TextColor" />

  • Dies ist viel mühsamer als das einfache Einstellen der android:textColor (entweder XML- oder Java-Code) für alle Ansichten. Anw, Ihr Ansatz erfordert wiederholte Bemühungen für jede einzelne Ansicht!

    – Ericn

    26. März 2014 um 9:00 Uhr

  • Nein, das ist eine viel bessere Lösung, denn wenn Sie die Farbe ändern möchten, müssen Sie dies nur einmal tun, nicht für jede TextView.

    – Anubian Noob

    16. Juli 2015 um 23:36 Uhr

  • Was ist, wenn Sie an irgendeinem Punkt innerhalb des Codes die Textfarbe programmgesteuert ändern müssen, damit sie sich auf alle Textansichten auswirkt, keine Idee, wie dies geschehen kann?

    – Mofor Emmanuel

    6. November 2019 um 9:04 Uhr

Benutzer-Avatar
Labeeb Panampullan

Legen Sie Ihre Standardfarbe in Ihrem fest res/values/colors.xml so was

<color name="defaultTextColor">#ffffff</color>

Also diese Farbe für alle Ihre Texte

android:textColor="@color/defaultTextColor"

oder

textView.setTextColor(R.color.defaultTextColor);

  • Stil für TextView erstellen:

    <style name="TextViewTheme">
        <item name="android:textColor">@android:color/white</item>
    </style>
    
  • Wenden Sie es stilvoll für die App an:

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textViewStyle">@style/TextViewTheme</item>
    </style>
    
  • Und denken Sie daran, den Stil in AndroidManifest.xml zu ändern:

    <application
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        ...
    </application>
    

1215550cookie-checkWie stelle ich die Textfarbe in der Android-App für den gesamten Text ein?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy