Ich habe die Farbe auf Rot gesetzt und möchte danach die Farbe wieder auf Standard zurücksetzen, aber ich weiß nicht, was die Standardfarbe ist, weiß jemand?
86
Sie können alte Farben speichern und dann verwenden, um den ursprünglichen Wert wiederherzustellen. Hier ist ein Beispiel:
ColorStateList oldColors = textView.getTextColors(); //save original colors
textView.setTextColor(Color.RED);
....
textView.setTextColor(oldColors);//restore original colors
Im Allgemeinen wird die Standardtextfarbe TextView
jedoch anhand des aktuellen Themas bestimmt, das auf Ihr Design angewendet wird Activity
.
Eigentlich ist die Farbe TextView:
android:textColor="@android:color/tab_indicator_text"
oder
#808080
quelle
Es sind einige Standardfarben in definiert
android.R.color
int c = getResources().getColor(android.R.color.primary_text_dark);
quelle
int c = ...
statt seinColor c = ...
getResources().getColor(int id)
ist es jetzt veraltet (siehe Link ). Sie können entwedergetResources().getColor (int id, Resources.Theme theme)
oderContextCompat.getColor(contex, android.R.color.primary_text_dark)
Holen Sie sich diese Werte aus Attributen:
int[] attrs = new int[] { android.R.attr.textColorSecondary }; TypedArray a = getTheme().obtainStyledAttributes(R.style.AppTheme, attrs); DEFAULT_TEXT_COLOR = a.getColor(0, Color.RED); a.recycle();
quelle
Das von Android verwendete Thema enthält Standardeinstellungen, wenn Sie keine Textfarbe angeben. In verschiedenen Android-Benutzeroberflächen (z. B. HTC Sense, Samsung TouchWiz usw.) können unterschiedliche Farben auftreten. Android hat ein
_dark
und_light
Thema, daher sind die Standardeinstellungen für diese unterschiedlich (aber in beiden in Vanille-Android fast schwarz). Es wird jedoch empfohlen, Ihre primäre Textfarbe selbst zu definieren, um auf allen Geräten einen einheitlichen Stil zu erzielen.In Code:
getResources().getColor(android.R.color.primary_text_dark); getResources().getColor(android.R.color.primary_text_light);
In XML:
android:color="@android:color/primary_text_dark" android:color="@android:color/primary_text_light"
Als Referenz in Vanilla Android ist die dunkle Textfarbe des Themas
#060001
und die im hellen Thema#060003
seit API v1. Sehen Sie hier die Android-Style-Klassequelle
Ich weiß, dass es alt ist, aber laut meinem eigenen Themeneditor mit Standard-Lichtthema, Standard
textPrimaryColor = #000000
und
textColorPrimaryDark = #757575
quelle
Ich habe einen Farbwähler in der Textansicht verwendet und diese # 757575 erhalten
quelle
Es ist möglicherweise nicht in allen Situationen möglich, aber warum nicht einfach den Wert einer anderen zufälligen Textansicht verwenden, die in derselben Aktivität vorhanden ist und die gewünschte Farbe enthält?
txtOk.setTextColor(txtSomeOtherText.getCurrentTextColor());
quelle
Es gibt keine Standardfarbe. Dies bedeutet, dass jedes Gerät ein eigenes haben kann.
quelle
Ich glaube, der Standardwert für die Ganzzahl der Farbe ist 16711935 (0x00FF00FF).
quelle
ColorStateList colorStateList = textView.getTextColors(); String hexColor = String.format("#%06X", (0xFFFFFF & colorStateList.getDefaultColor()));
quelle
Ich habe festgestellt, dass dies
android:textColor="@android:color/secondary_text_dark"
ein näheres Ergebnis für die Standardfarbe von TextView liefert alsandroid:textColor="@android:color/tab_indicator_text"
. Ich nehme an, Sie müssen je nach verwendetem Thema zwischen sekundärem_text_dunkel / Licht wechselnquelle
Sie können TextView.setTag / getTag verwenden, um die Originalfarbe zu speichern, bevor Sie Änderungen vornehmen. Ich würde vorschlagen, eine eindeutige ID-Ressource in ids.xml zu erstellen, um andere Tags zu unterscheiden, wenn Sie haben.
vor dem Einstellen auf andere Farben:
if (textView.getTag(R.id.txt_default_color) == null) { textView.setTag(R.id.txt_default_color, textView.currentTextColor) }
Zurück ändern:
textView.getTag(R.id.txt_default_color) as? Int then { textView.setTextColor(this) }
quelle