it-swarm.com.de

Wie man die Textfarbe von TextView im Code einstellt?

In XML können wir eine Textfarbe durch das textColor-Attribut festlegen, z. B. Android:textColor="#FF0000". Aber wie ändere ich es durch Codierung?

Ich habe versucht, etwas wie:

holder.text.setTextColor(R.color.Red);

Wobei holder nur eine Klasse ist und text vom Typ TextView ist. Rot ist ein RGB-Wert (# FF0000), der in Zeichenfolgen festgelegt wird.

Aber es zeigt eine andere Farbe als rot. Welche Art von Parameter können wir in setTextColor () übergeben? In der Dokumentation steht int, aber handelt es sich um einen Ressourcenreferenzwert oder etwas anderes?

511
Vikas

Du solltest benutzen:

holder.text.setTextColor(Color.RED);

Zur Überprüfung der Gesundheit habe ich es einfach ausprobiert, weil ich sowieso ein Projekt geöffnet hatte, und ja, es ist schön und rot; D


Sie können natürlich verschiedene Funktionen aus der Klasse Color verwenden, um den gleichen Effekt zu erzielen.

  • Color.parseColor(Manual) (wie Lex verwendet)

    text.setTextColor(Color.parseColor("#FFFFFF"));
    
  • Color.rgb und Color.argb ( Manual rgb ) ( Manual argb ) (wie Ganapathy verwendet)

    holder.text.setTextColor(Color.rgb(200,0,0));
    holder.text.setTextColor(Color.argb(0,200,0,0));
    
  • Und wenn Sie Ihre Farbe in einer XML -Datei definieren möchten, können Sie dies natürlich tun:

    <color name="errorColor">#f00</color>
    

    weil die Funktion getColor() veraltet ist1, du musst es so benutzen:

    ContextCompat.getColor(context, R.color.your_color);
    
  • Sie können auch einfaches HEX wie folgt einfügen:

    myTextView.setTextColor(0xAARRGGBB);
    

    Wo Sie zuerst einen Alpha-Kanal haben, dann den Farbwert.

Schauen Sie sich natürlich das komplette Handbuch an public class Color extend Object.


1Dieser Code war auch hier zu finden:

textView.setTextColor(getResources().getColor(R.color.errorColor));

Diese Methode ist jetzt in Android M veraltet. Sie können sie jedoch aus contextCompat in der Support-Bibliothek verwenden, wie das Beispiel jetzt zeigt.

1175
Nanne

Wenn Sie Ihre Farben dennoch in Ihrer XML-Datei angeben möchten:

<color name="errorColor">#f00</color>

Verweisen Sie dann mit einer der beiden folgenden Methoden in Ihrem Code darauf:

textView.setTextColor(getResources().getColor(R.color.errorColor, getResources().newTheme()));    

oder

textView.setTextColor(getResources().getColor(R.color.errorColor, null));

Das erste ist wahrscheinlich vorzuziehen, wenn Sie gegen Android M kompilieren. Das Thema, das Sie übergeben, kann jedoch null sein. Vielleicht ist das für Sie einfacher?

Und wenn Sie die Compat-Bibliothek verwenden, können Sie so etwas tun

textView.setTextColor(ContextCompat.getColor(context, R.color.errorColor));
135
xbakesx

Und noch einer:

TextView text = (TextView) findViewById(R.id.text);
text.setTextColor(Color.parseColor("#FFFFFF"));
45
LEX

Sie können dies auch nur aus einer XML-Datei heraus tun.

Erstellen Sie eine color.xml -Datei im Ordner values:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="textbody">#ffcc33</color>

</resources>

Dann können Sie in jeder XML-Datei die Farbe für den Text festlegen, indem Sie

Android:textColor="@color/textbody"

Oder Sie können diese Farbe in einer Java -Datei verwenden:

final TextView tvchange12 = (TextView) findViewById(R.id.textView2);
//Set color for textbody from color.xml file
tvchange1.setTextColor(getResources().getColor(R.color.textbody));
37
newday

Sie können verwenden

holder.text.setTextColor(Color.rgb(200,0,0));

Sie können mit Transparenz auch festlegen, welche Farbe Sie möchten.

holder.text.setTextColor(Color.argb(0,200,0,0));

a für Alpha (Transparent) Wert r-rot g-grün b-blau

27
Ganapathy C

Es gibt viele verschiedene Möglichkeiten, die Farbe in der Textansicht festzulegen.

  1. Fügen Sie den Farbwert in studio res-> values-> colors.xml als hinzu

    <color name="color_purple">#800080</color>
    

    Stellen Sie nun die Farbe in xml oder der Aktivitätsklasse als ein

    text.setTextColor(getResources().getColor(R.color.color_purple)
    
  2. Wenn Sie den Farbcode direkt angeben möchten, verwenden Sie den folgenden Color.parseColor-Code

    textView.setTextColor(Color.parseColor("#ffffff"));   
    
  3. Sie können auch RGB verwenden

    text.setTextColor(Color.rgb(200,0,0));
    
  4. Verwendung kann auch direkten Hexcode für TextView verwenden. Sie können auch einfaches HEX wie folgt einfügen:

    text.setTextColor(0xAARRGGBB);
    
  5. Sie können argb auch mit Alpha-Werten verwenden.

       text.setTextColor(Color.argb(0,200,0,0));
    

    a für Alpha (Transparent) v.

  6. Und wenn Sie die Compat-Bibliothek verwenden, können Sie so etwas tun

       text.setTextColor(ContextCompat.getColor(context, R.color.color_purple));
    
15
Rank

verwenden Sie den folgenden Code in layout.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" />
14
Chinna

Normalerweise mache ich das für alle Ansichten:

myTextView.setTextColor(0xAARRGGBB);

wo

  • AA definiert Alpha (00 für transparent, FF für opak)

  • RRGGBB definiert den normalen HTML-Farbcode (wie FF0000 für Rot).

9
A.W

Wenn Sie setTextAppearance verwenden möchten, sollten Sie wissen, dass die Textfarbe mit dem vom Design geerbten Stil überschrieben wird. Wenn Sie also beide verwenden möchten, setzen Sie die Farbe danach.

Das funktioniert:

textView.setTextAppearance(context, Android.R.style.TextAppearance_Medium);
textView.setTextColor(Color.RED);

Während dies dazu führt, dass Ihre Textfarbe beispielsweise weiß (für dunkle Themen) oder schwarz (für helle Themen) ist:

textView.setTextColor(Color.RED);
textView.setTextAppearance(context, Android.R.style.TextAppearance_Medium);

Im Gegensatz dazu ist die Reihenfolge in XML beliebig.

8
Robin Gawenda

Ich glaube, wenn Sie eine Farbe als Ressource angeben möchten (in der Datei XML ), müssen Sie den Wert ARGB angeben (nicht einfach der RGB-Wert).

Versuchen Sie, Ihren Farbwert in #FFFF0000 zu ändern. Es sollte dir ROT geben.

6
textView.setTextColor(ContextCompat.getColor(getApplicationC‌​ontext(),R.color.col‌​orWhite)); 

Schreiben Sie in die Datei colors.xml den folgenden Code:

<color name="colorWhite">#FFFFFF</color>
6
holder.text.setTextColor(Color.rgb(200,0,0));

oder

myTextView.setTextColor(0xAARRGGBB);
5
Yash Patil

Verwenden:

TextView tv = new TextView(this);
tv.setTextColor(Color.rgb(285,0,0));
5
Talha

text.setTextColor(getResource().getColor(R.color.black)) Sie haben in color.xml eine schwarze Farbe erstellt.

OR

text.setTextColor(Color.parseColor("#000000")) Geben Sie hier den gewünschten Hexcode ein

OR

text.setTextColor(Color.BLACK) Sie können statische Farbfelder verwenden

5
Nitish
TextView text = new TextView(context);
text.setTextColor(Color.parseColor("any hex value of a color"));

Der obige Code funktioniert auf meiner Seite. Hier ist text ein TextView, auf das die Farbe gesetzt werden soll.

4
Evon Technology

Mit dem Adapter können Sie die Textfarbe mit folgendem Code einstellen:

holder.text_view = (TextView) convertView.findViewById(R.id.text_view);
holder.text_view.setTextColor(Color.parseColor("#FF00FF"));
4
Hiren Patel
text1.setTextColor(Color.parseColor("#000000"));
4
Ravina Bhavsar

Ab API 23 ist getResources().getColor() veraltet.

Verwenden Sie dies stattdessen:

textView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.color_black));
2
PJ2104

In Adapter können Sie die Textfarbe mithilfe des folgenden Codes festlegen:

holder.my_text_view = (TextView) convertView.findViewById(R.id.my_text_view);
holder.my_text_view.setTextColor(Color.parseColor("#FFFFFF"));
1
user2285778

wenn Sie den Farbcode direkt eingeben möchten, verwenden Sie

textView.setTextColor(Color.parseColor("#ffffff"));

oder wenn Sie einen Farbcode aus dem Farbordner eingeben möchten, verwenden Sie

textView.setTextColor(R.color.white);
1
reshma

Um die Farbe einer Textansicht einzustellen, reicht TextView.setTextColor(R.color.YOURCOLOR) nicht aus!

Es muss so verwendet werden -

TextView myText = (TextView) findViewById(R.id.YoutTextViewID);

myText.setTextColor(getResources().getColor(R.color.YOURCOLOR);

OR

myText.setTextColor(Color.parseColor("#54D66A"));
1
IntelliJ Amiya
holder.userType.setTextColor(context.getResources().getColor(
                    R.color.green));
1
Harish Gyanani
   textViewStatus.setTextColor(res.getColor(R.color.green));
1
zudo1337

Zur Bereitstellung von RGB-Werten: text.setTextColor(Color.rgb(200,0,0));
Zum Parsen der Farbe von einem Hex-Wert: text.setTextColor(Color.parseColor("#FFFFFF"));

0
Comrade

Ebenso habe ich color.xml verwendet:

<color name="white">#ffffff</color>
    <color name="black">#000000</color>   

Zum Einstellen des TextView Hintergrunds wie folgt:

textView.setTextColor(R.color.white);

Ich bekam eine andere Farbe, aber als ich den folgenden Code verwendete, bekam ich die tatsächliche Farbe.

textView.setTextColor(Color.parseColor("#ff6363"));
0
Raj Sharma

Sie können textView.setTextColor(Color.BLACK) verwenden, um alle integrierten Farben der Klasse Color zu verwenden.

Sie können auch textView.setTextColor(Color.parseColor(hexRGBvalue)) verwenden, um benutzerdefinierte Farben zu definieren.

0
shravs

Ich habe es so gemacht: Erstelle eine XML-Datei mit dem Namen Colors im Ordner res/values.

Meine Colors.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>

Um diese Farben aus der XML-Datei zu erhalten, habe ich diesen Code verwendet: valor es ist ein TextView und ctx es ist ein Context-Objekt. Ich verwende es nicht aus einer Aktivität, sondern aus einem BaseAdapter in eine ListView. Deshalb habe ich dieses Kontextobjekt verwendet.

valor.setTextColor(ctx.getResources().getColor(R.color.azul_credito));

Ich hoffe es hilft.

0

Ich habe dies für eine TextView in einem ViewHolder für eine RecyclerView gemacht. Ich bin mir nicht sicher, warum, aber es hat bei der ViewHolder-Initialisierung nicht funktioniert.

public ViewHolder(View itemView) {
    super(itemView);
    textView = (TextView) itemView.findViewById(R.id.text_view);
    textView.setTextColor(context.getResources().getColor(R.color.myColor));
    // Other stuff
}

Aber als ich es in den onBindViewHolder verschoben habe, hat es gut funktioniert.

public void onBindViewHolder(ViewHolder holder, int position){
    // Other stuff
    holder.textView.setTextColor(context.getResources().getColor(R.color.myColor));
}

Hoffe das hilft jemandem.

0
IsaiahJ

getColor () ist veraltet

Also versuch es mal so:

 tv_title.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.sf_white));
0
kgandroid

Versuche dies:

textView.setTextColor(getResources().getColor(R.color.errorColor, null));
0
mohamad sheikhi

Versuche dies:

TextView textview = (TextView) findViewById(R.id.textview );
textview .setTextColor(Color.parseColor("#85F85F"));
0
mohamad sheikhi
TextView textresult = (TextView)findViewById(R.id.textView1);
textresult.setTextColor(Color.GREEN);
0
Pedro Lobito

Wenn Sie sich in einem Adapter befinden und dennoch eine in Ressourcen definierte Farbe verwenden möchten, können Sie den folgenden Ansatz verwenden:

holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.myRed));
0
Aleks Nine