Jak ustawić kolor tekstu TextView w kodzie?
W XML możemy ustawić kolor tekstu za pomocą atrybutu textColor
, np. android:textColor="#FF0000"
. Ale jak Mogę to zmienić poprzez kodowanie?
Próbowałem czegoś takiego:
holder.text.setTextColor(R.color.Red);
Gdzie holder
jest tylko klasą, A text
jest typu TextView
. Czerwony jest wartością RGB (#ff0000) ustawioną w łańcuchach.
Ale pokazuje inny kolor niż czerwony. Jaki parametr możemy przekazać w settextcolor ()? W dokumentacji jest napisane int
, ale czy jest to wartość referencyjna zasobów, czy cokolwiek innego?
30 answers
Powinieneś użyć:
holder.text.setTextColor(Color.RED);
Dla sprawdzenia zdrowia psychicznego, właśnie próbowałem, bo i tak miałem otwarty projekt i tak, jest ładny i czerwony; d
Możesz używać różnych funkcji z klasy Color
, aby oczywiście uzyskać ten sam efekt.
-
Color.parseColor
(Manual) (Jak używa LEX)text.setTextColor(Color.parseColor("#FFFFFF"));
-
Color.rgb
orazColor.argb
(ręczne rgb) (Manual argb ) (Jak używa Ganapathy)holder.text.setTextColor(Color.rgb(200,0,0)); holder.text.setTextColor(Color.argb(0,200,0,0));
-
I oczywiście, jeśli chcesz zdefiniować swój kolor w pliku
XML
, możesz to zrobić:<color name="errorColor">#f00</color>
Ponieważ funkcja
getColor()
jest przestarzała1, musisz go używać w ten sposób:ContextCompat.getColor(context, R.color.your_color);
-
Możesz również wstawić zwykły HEX, tak:
myTextView.setTextColor(0xAARRGGBB);
Gdzie najpierw masz kanał alfa, potem wartość koloru.
Zapoznaj się z kompletnym podręcznikiem oczywiście, Klasa publiczna Color rozszerza obiekt.
1kod ten użyty być tu też:
textView.setTextColor(getResources().getColor(R.color.errorColor));
Ta metoda jest obecnie przestarzała w systemie Android M. można jej jednak używać z contextCompat w bibliotece wsparcia , Jak pokazuje teraz przykład.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:22
Jeśli nadal chcesz określić kolory w pliku XML:
<color name="errorColor">#f00</color>
Następnie odwołaj się do niego w swoim kodzie za pomocą jednej z tych dwóch metod:
textView.setTextColor(getResources().getColor(R.color.errorColor, getResources().newTheme()));
Lub
textView.setTextColor(getResources().getColor(R.color.errorColor, null));
Pierwszy jest prawdopodobnie lepszy, jeśli kompilujesz z Androidem M, jednak motyw, który przekazujesz, może być null, więc może to dla ciebie łatwiejsze?
A jeśli korzystasz z biblioteki Compat, możesz zrobić coś takiego
textView.setTextColor(ContextCompat.getColor(context, R.color.errorColor));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-07 18:21:51
I jeszcze jeden:
TextView text = (TextView) findViewById(R.id.text);
text.setTextColor(Color.parseColor("#FFFFFF"));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-16 16:37:27
Możesz to zrobić tylko z pliku XML.
Utwórz plik color.xml
w folderze values:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="textbody">#ffcc33</color>
</resources>
Następnie w dowolnym pliku XML można ustawić kolor tekstu za pomocą
android:textColor="@color/textbody"
Lub możesz użyć tego koloru w pliku Java:
final TextView tvchange12 = (TextView) findViewById(R.id.textView2);
//Set color for textbody from color.xml file
tvchange1.setTextColor(getResources().getColor(R.color.textbody));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-16 16:38:30
Możesz użyć
holder.text.setTextColor(Color.rgb(200,0,0));
Możesz również określić, jaki kolor chcesz za pomocą przezroczystości.
holder.text.setTextColor(Color.argb(0,200,0,0));
A Dla Alfa (przezroczysty) wartość r-czerwony G-zielony b-niebieski
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-24 18:31:42
Użyj poniższego kodu w układzie.xml
<TextView android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add"
android:layout_marginTop="16dp"
android:textAppearance="?
android:attr/textAppearanceMedium"
android:textColor="#25383C"
android:textSize="13sp" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add"
android:layout_marginTop="16dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#25383C"
android:textSize="13sp" />
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-09 14:09:48
Istnieje wiele różnych sposobów ustawiania koloru w widoku tekstu.
-
Dodaj wartość koloru w studio res->wartości->kolory.xml as
<color name="color_purple">#800080</color>
Teraz ustaw kolor w klasie XML lub actvity jako
text.setTextColor(getResources().getColor(R.color.color_purple)
-
Jeśli chcesz podać kod koloru bezpośrednio użyj poniższego koloru.kod parseColor
textView.setTextColor(Color.parseColor("#ffffff"));
-
Możesz również użyć RGB
text.setTextColor(Color.rgb(200,0,0));
-
Use może również używać bezpośredniego kodu heksagonalnego dla textView. Można również wstawić zwykły HEX, jak więc:
text.setTextColor(0xAARRGGBB);
-
Możesz również użyć argb z wartościami Alfa.
text.setTextColor(Color.argb(0,200,0,0));
A Dla Alfa (przezroczysty) v.
-
A jeśli korzystasz z biblioteki Compat, możesz zrobić coś takiego
text.setTextColor(ContextCompat.getColor(context, R.color.color_purple));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-08 02:36:43
Normalnie robię to dla dowolnych widoków:
myTextView.setTextColor(0xAARRGGBB);
Gdzie
-
AA definiuje alpha (00 dla przezroczystości, FF dla nieprzezroczystości)
RRGGBB definiuje normalny kod koloru HTML (jak ff0000 Dla red).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-16 16:38:59
Jeśli planujesz użyć setTextAppearance powinieneś wiedzieć, że nadpisze kolor tekstu stylem odziedziczonym z motywu. Więc jeśli chcesz użyć obu, ustaw kolor Później .
To działa:
textView.setTextAppearance(context, android.R.style.TextAppearance_Medium);
textView.setTextColor(Color.RED);
Podczas gdy spowoduje to, że Twój textcolor będzie np. biały (dla ciemnego motywu) lub czarny (dla jasnego motywu):
textView.setTextColor(Color.RED);
textView.setTextAppearance(context, android.R.style.TextAppearance_Medium);
W przeciwieństwie do tego w XML kolejność jest dowolna.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-10 10:09:45
Uważam, że jeśli chcesz określić kolor jako zasób (w pliku XML), Musisz podać jego wartość ARGB (nie tylko wartość RGB).
Spróbuj zmienić wartość koloru na #FFFF0000
. Powinno dać ci czerwony.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-16 16:46:03
Użycie:
TextView tv = new TextView(this);
tv.setTextColor(Color.rgb(285,0,0));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-16 16:46:26
textView.setTextColor(ContextCompat.getColor(getApplicationContext(),R.color.colorWhite));
W pliku colors.xml
wpisz poniższy kod:
<color name="colorWhite">#FFFFFF</color>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-05 19:38:07
holder.text.setTextColor(Color.rgb(200,0,0));
Lub
myTextView.setTextColor(0xAARRGGBB);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-31 01:17:14
Za Pomocą Adaptera można ustawić kolor tekstu za pomocą tego kodu:
holder.text_view = (TextView) convertView.findViewById(R.id.text_view);
holder.text_view.setTextColor(Color.parseColor("#FF00FF"));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-16 16:39:55
TextView text = new TextView(context);
text.setTextColor(Color.parseColor("any hex value of a color"));
Powyższy kod działa po mojej stronie. Tutaj text
jest TextView , na którym należy ustawić kolor.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-24 13:31:44
text1.setTextColor(Color.parseColor("#000000"));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-31 01:16:55
text.setTextColor(getResource().getColor(R.color.black))
masz utworzyć czarny kolor w Kolorze.xml.
Lub
text.setTextColor(Color.parseColor("#000000"))
Tutaj wpisz żądany hexcode
Lub
text.setTextColor(Color.BLACK)
możesz używać statycznych pól kolorów
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-30 10:09:41
textViewStatus.setTextColor(res.getColor(R.color.green));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-29 10:45:39
W adapterze można ustawić kolor tekstu za pomocą tego kodu:
holder.my_text_view = (TextView) convertView.findViewById(R.id.my_text_view);
holder.my_text_view.setTextColor(Color.parseColor("#FFFFFF"));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-16 16:39:21
Jeśli chcesz podać kod koloru bezpośrednio, użyj
textView.setTextColor(Color.parseColor("#ffffff"));
Lub jeśli chcesz podać kod koloru z folderu kolory to Użyj
textView.setTextColor(R.color.white);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-08 07:05:07
Aby ustawić kolor widoku tekstowego, TextView.setTextColor(R.color.YOURCOLOR)
nie wystarczy!
To musi być używane w ten sposób –
TextView myText = (TextView) findViewById(R.id.YoutTextViewID);
myText.setTextColor(getResources().getColor(R.color.YOURCOLOR);
Lub
myText.setTextColor(Color.parseColor("#54D66A"));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-19 09:10:55
holder.userType.setTextColor(context.getResources().getColor(
R.color.green));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-21 11:13:21
Od API 23, {[1] } jest przestarzałe.
Użyj tego zamiast:
textView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.color_black));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-11 10:17:40
Podobnie używałem color.xml
:
<color name="white">#ffffff</color>
<color name="black">#000000</color>
Do Ustawienia tła TextView
W Stylu:
textView.setTextColor(R.color.white);
Otrzymywałem inny kolor, ale gdy użyłem poniższego kodu, otrzymałem rzeczywisty kolor.
textView.setTextColor(Color.parseColor("#ff6363"));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-16 16:47:40
I did this way: Utwórz plik XML o nazwie Colors w folderze res / values.
Moje Kolory.xml: <?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="vermelho_debito">#cc0000</color>
<color name="azul_credito">#4c4cff</color>
<color name="preto_bloqueado">#000000</color>
<color name="verde_claro_fundo_lista">#CFDBC5</color>
<color name="branco">#ffffff</color>
<color name="amarelo_corrige">#cccc00</color>
<color name="verde_confirma">#66b266</color>
</resources>
Aby pobrać te kolory z pliku xml, użyłem tego kodu: valor to TextView, a ctx to obiekt kontekstowy. Nie używam go z aktywności, ale BaseAdapter do ListView. Dlatego użyłem tego obiektu kontekstowego.
valor.setTextColor(ctx.getResources().getColor(R.color.azul_credito));
Mam nadzieję, że to pomoże.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-17 12:19:53
Dla podania wartości rgb: text.setTextColor(Color.rgb(200,0,0));
Do analizy koloru z wartości szesnastkowej:
text.setTextColor(Color.parseColor("#FFFFFF"));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-26 21:39:01
Jeśli jesteś w adapterze i nadal chcesz użyć koloru zdefiniowanego w zasobach, możesz wypróbować następujące podejście:
holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.myRed));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-18 13:55:41
TextView textresult = (TextView)findViewById(R.id.textView1);
textresult.setTextColor(Color.GREEN);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-23 22:55:27
GetColor() jest przestarzały
Więc spróbuj w ten sposób:
tv_title.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.sf_white));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-02 10:43:39
Robiłem to dla TextView w Viewholderze dla RecyclerView. Nie jestem tak pewien dlaczego, ale to nie działa dla mnie w viewholder inicjalizacji.
public ViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.text_view);
textView.setTextColor(context.getResources().getColor(R.color.myColor));
// Other stuff
}
Ale kiedy przeniosłem go do onBindViewHolder, działało dobrze.
public void onBindViewHolder(ViewHolder holder, int position){
// Other stuff
holder.textView.setTextColor(context.getResources().getColor(R.color.myColor));
}
Mam nadzieję, że to komuś pomoże.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-02 09:27:18