Ustawiłem kolor na czerwony, a potem chcę ustawić kolor ponownie na domyślny, ale nie wiem jaki jest domyślny kolor, czy ktoś wie?Jaki jest domyślny kolor tekstu w widoku tekstowym?
Odpowiedz
Możesz zapisać stary kolor, a następnie użyć go do przywrócenia pierwotnej wartości. Oto przykład:
ColorStateList oldColors = textView.getTextColors(); //save original colors
textView.setTextColor(Color.RED);
....
textView.setTextColor(oldColors);//restore original colors
ale ogólnie domyślnie TextView
kolor tekstu jest określana z bieżącego motywu zastosowanego do Activity
.
Brak domyślnego koloru. Oznacza to, że każde urządzenie może mieć własne.
Nie ma domyślnych kolorów, tylko każda dystrybucja Android może je nadpisać – for3st
@ for3st Czy wiesz o przypadkach, że je zmieniają? –
Wierzę, że domyślna liczba całkowita to 16711935 (0x00FF00FF).
Wow hardcoded stuff, wiesz. Czy była to wartość dla wszystkich wersji Androida na wszystkich urządzeniach i we wszystkich wybieranych motywach ?! Żarty, wiesz ... :) – Bondax
Więc domyślny kolor tekstu w Androidzie jest różowy? Myślę, że jest to bardziej zgodne z # 060001 http://developer.android.com/reference/android/R.color.html#primary_text_dark – for3st
Istnieją pewne kolory domyślne zdefiniowane w android.R.color
int c = getResources().getColor(android.R.color.primary_text_dark);
Powinno to być 'int c = ...' zamiast 'Kolor c = .. . ' –
Od poziomu interfejsu API23 'getResources(). GetColor (int id)' jest teraz przestarzałe (patrz [link] (https://developer.android.com/reference/android/content/res/Resources.html# getColor% 28int% 29)). Możesz użyć 'getResources(). GetColor (int id, Resources).Motyw tematyczny) 'lub' ContextCompat.getColor (contex, android.R.color.primary_text_dark) ' – InfectedPacket
Zdobądź te wartości z atrybutami:
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();
Wygląda na to, że odpowiednio wybierze kolor na podstawie motywu i zaktualizuje się na przykład, jeśli aplikacja działa w trybie nocnym. –
Aby uzyskać TypedArray dla bieżącego tematu wywołaj go bez argumentu Theme: TypedArray a = getTheme(). ObtainStyledAttributes (attrs); – petrsyn
To będzie uzyskać tylko odpowiedni kolor, jeśli motyw jest faktycznie za pomocą textColorSecondary. Ponieważ możliwe jest przesłonięcie tego tematu lub stylu, nie jest to bardzo dokładny sposób określania, jaki będzie domyślny kolor tekstu dla konkretnego widoku. Uwaga: poszczególne widoki mogą być teraz tematyczne, więc należy użyć motywu powiązanego z kontekstem widoku, zamiast zakładać, że temat działania działa dla wszystkich jego widoków. –
Istnieją domyślnie w temacie, że Android używa jeśli nie specifiy kolor tekstu . Mogą to być różne kolory w różnych interfejsach Androida (np. HTC Sense, Samsung TouchWiz, itp.). Android ma motyw _dark
i _light
, więc wartości domyślne są inne dla tych (ale prawie czarne w obu w androidach waniliowych). Dobrą praktyką jest jednak samodzielne definiowanie głównego koloru tekstu, aby zapewnić spójny styl na wszystkich urządzeniach.
W kodzie:
getResources().getColor(android.R.color.primary_text_dark);
getResources().getColor(android.R.color.primary_text_light);
w XML:
android:color="@android:color/primary_text_dark"
android:color="@android:color/primary_text_light"
Jako odniesienie w waniliowym Androida ciemny kolor tekstu tematem jest #060001
oraz w świetle motywu to #060003
od API v1. See the android style class here
Właściwie TextView kolor:
android:textColor="@android:color/tab_indicator_text"
lub
#808080
Works idealne dla mnie, dzięki! –
Najbardziej poprawne rozwiązanie. Zachowaj stany kolorów tekstu (wyłączone, itp.) – dasar
Z moich obserwacji wynika, że kolor tekstu zdefiniowany przez motyw nie jest dziedziczony przez TextView dodawany dynamicznie z kodu. Zawsze pojawia się w kolorze białym, niezależnie od motywu ciemnego/jasnego. – shiouming