Mam niestandardowy komponent, który chcę nadać te same kolory co TextView. To znaczy, nie chcę kopiować jego kolorów, chcę uzyskać domyślne kolory tła i pierwszego planu, jeśli jest taka koncepcja na Androida.Jak uzyskać domyślne kolory na Androidzie
[Edytuj]
Poniższy wydaje uzyskując kolor tekstu mojego TextView. Ale czy to tylko szczęście? Nie jest mi intuicyjnie, że domyślny TextView użyłby android.R.attr.textColorSecondary
? I dlaczego resolveAttribute
nie zwraca bezpośrednio koloru?
TypedValue tv = new TypedValue();
getContext().getTheme().resolveAttribute(android.R.attr.textColorSecondary, tv, true);
Color holyColor = getResources().getColor(tv.resourceId);
[Edytuj]
znalazłem kodu źródłowego TextView na android.git.kernel.org, ale wydawało się, że zawiera dużo referrences do com.android.internal.R
, która nie sądzę, powinno się używać we własnym kodzie. Obecnie szukam jakiegoś dowodu, który TextView
używa android.R.attr.textColorSecondary
.
[Edytuj]
znalazłem jakieś dowody na developer.android.com w styles.xml że TextView
wykorzystuje android.R.attr.textAppearanceSmall
. textAppearanceSmall
jest domyślnie udokumentowany jako "dodatkowy kolor tekstu".
Chyba miałem szczęście, ale nadal nie lubię tego małego fragmentu kodu.
Twoja obserwacja jest również poparta dokumentacją tutaj: [http://developer.android.com/guide/topics/resources/accessing-resources.html#ReferencesToThemeAttributes](http://developer.android.com/ guide/topics/resources/accessing-resources.html # ReferencesToThemeAttributes "Referencing style attributes") – fr1550n