TextView Android: impostare il colore di sfondo in modo dinamico non funziona
Domanda
Impostazione del colore di sfondo di un programatically TextView
Android non sembra funzionare.
Mi sto perdendo qualcosa!
TextView et = new TextView(activity);
et.setText("350");
et.setBackgroundColor(R.color.white);
Ho anche questo file (colors.xml) nei miei res / valori cartella
<resources>
<color name="white">#ffffffff</color>
<color name="black">#ff000000</color>
</resources>
[EDIT]: Inoltre, l'impostazione del colore del testo fa sì che il TextView a scomparire.
TextView c1 = new TextView(activity);
c1.setTextColor(R.color.solid_red);
c1.setText("My Text");
Soluzione
Usa et.setBackgroundResource(R.color.white);
Altri suggerimenti
Prova questo:
TextView c1 = new TextView(activity);
c1.setTextColor(getResources().getColor(R.color.solid_red));
c1.setText("My Text");
Sono d'accordo che un colore e una risorsa hanno lo stesso tipo, ma anche trascorrere un paio d'ore per trovare questa soluzione.
Per impostare il colore rosso:
textView.setBackgroundColor(0xfff00000);
o
<color name="solid_red">#fff00000</color>
textView.setBackgroundResource(R.color.solid_red);
Ho avuto un problema simile in cui creavo un colore numerico senza considerare il canale principale alfa. vale a dire. mytext.setTextColor(0xFF0000)
(pensando questo sarebbe rosso). Mentre questo è un colore rosso è anche trasparente al 100% come it = 0x00FF0000;
Il valore corretto opaco 100% è 0xFFFF0000
o mytext.setTextcolor(0xFFFF0000)
.
Proprio questa 1 riga di codice cambiato lo sfondo di programmazione
tv.setBackgroundColor(Color.parseColor("#808080"));
Beh ho avuto situazione in cui il servizio Web ha restituito un colore in formato esadecimale come "# CC2233" e ho voluto mettere questo colore su textView utilizzando setBackGroundColor (), quindi ho usato classe Color Android per ottenere il valore int di stringa esadecimale e passò alla funzione menzionato. Tutto ha funzionato. Questo è l'esempio:
String myHexColor = "#CC2233";
TextView myView = (TextView) findViewById(R.id.myTextView);
myView.setBackGroundColor(Color.pasrsehexString(myHexColor));
P.S. postato questa risposta perché altre soluzioni non ha funzionato per me. Spero che questo vi aiuterà qualcuno:)
Questi sono i passi da fare in modo corretto:
-
Prima di tutto, dichiarare un'istanza di TextView nel vostro MainActivity.java come segue:
TextView mTextView;
-
Imposta qualche testo in modo dinamico (se volete) come segue:
mTextView.setText("some_text");
-
Ora, per impostare il colore di sfondo, è necessario definire il proprio colore nella>> colors.xml file di RES- VALORI nel seguente modo:
<resources> <color name="my_color">#000000</color> </resources>
-
È ora possibile utilizzare il colore "my_color" nel file java per impostare lo sfondo in modo dinamico nel seguente modo:
mTextView.setBackgroundResource(R.color.my_color);
tv.setTextColor(getResources().getColor(R.color.solid_red));
qui è in piccolo dettaglio,
se si è in uso attività di questo
textview.setBackground(ContextCompat.getColor(this,R.color.yourcolor));
se si è in uso frammento di sotto codice
textview.setBackground(ContextCompat.getColor(getActivity(),R.color.yourcolor));
se si è in uso l'adattatore recyclerview sottostante codice
textview.setBackground(ContextCompat.getColor(context,R.color.yourcolor));
// use holder.textview if you are in onBindviewholder
//here context is passed from fragment
Color.parseHexColor("17ee27")
non ha funzionato per me, invece Color.parseColor("17ee27")
ha funzionato perfettamente.
due modi per farlo:
colore 1.Creare nel file di colors.xml come:
<resources>
<color name="white">#ffffff</color>
</resources>
e utilizzarlo int classe di attività Java come:
et.setBackgroundResource(R.color.white);
2.
et.setBackgroundColor(getResources().getColor(R.color.white));
or
et.setBackgroundColor(Color.parseColor("#ffffff"));
Se si desidera supportare tutte le versioni, fare questo:
myTextView.setBackgroundColor (ContextCompat.getColor (questo, R.color.mycolor));
Jut utilizzare
ArrayAdapter<String> adaptername = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, your array list);
è possibile utilizzare android:textColor= "
qualunque sia il colore del testo u vuole dare" nel file XML in cui viene dichiarata la visualizzazione del testo.