Hoe de tekstkleur van tekstview in code in te stellen?

In XML kunnen we een tekstkleur instellen met de textColorAttribuut, zoals android:textColor="#FF0000". Maar hoe verander ik het door codering?

Ik heb zoiets geprobeerd:

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

waar holderis slechts een klasse en textis van het type TextView. Rood is een RGB-waarde (# FF0000) die is ingesteld in snaren.

Maar het toont een andere kleur in plaats van rood. Wat voor soort parameter kunnen we in SettekColor () passeren? In documentatie staat het int, maar is het een resource-referentiewaarde of iets anders?


Antwoord 1, Autoriteit 100%

U moet gebruiken:

holder.text.setTextColor(Color.RED);

U kunt verschillende functies gebruiken van de ColorKlasse om natuurlijk hetzelfde effect te krijgen.

  • Color.parseColor(handmatig) (zoals Lex gebruikt)

    text.setTextColor(Color.parseColor("#FFFFFF"));
    
  • Color.rgbEN Color.argb(handmatige RGB ) (Handmatige argb ) (zoals Ganapathy gebruikt)

    holder.text.setTextColor(Color.rgb(200,0,0));
    holder.text.setTextColor(Color.argb(0,200,0,0));
    
  • En natuurlijk, als u uw kleur in een XML-bestand wilt definiëren, kunt u dit doen:

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

    omdat de functie getColor()is verouderd1, moet u deze als volgt gebruiken:

    ContextCompat.getColor(context, R.color.your_color);
    
  • Je kunt ook gewone HEX invoegen, zoals:

    myTextView.setTextColor(0xAARRGGBB);
    

    Waar je eerst een alfakanaal hebt, dan de kleurwaarde.

Bekijk natuurlijk de volledige handleiding, openbare klasse Color breidt Object uit .


1Deze code stond hier ook:

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

Deze methode is nu verouderd in Android M. U kunt deze echter gebruiken via de contextCompat in de ondersteuningsbibliotheek, zoals het voorbeeld nu laat zien.


Antwoord 2, autoriteit 11%

Als u toch uw kleuren in uw XML-bestand wilt specificeren:

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

Verwijs er vervolgens naar in uw code met een van deze twee methoden:

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

of

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

De eerste heeft waarschijnlijk de voorkeur als u tegen Android M compileert, maar het thema dat u passeert, kan null zijn, dus misschien is dat gemakkelijker voor u?

en als u de COMPAT-bibliotheek gebruikt, kunt u iets als deze doen

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

Antwoord 3, Autoriteit 4%

en een andere:

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

Antwoord 4, Autoriteit 3%

U kunt dit alleen vanuit een XML-bestand doen.

Maak een color.xmlbestand in de map Waarden:

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

Dan in een XML-bestand, kunt u kleur instellen voor tekst met,

android:textColor="@color/textbody"

of u kunt deze kleur gebruiken in een Java-bestand:

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

Antwoord 5, Autoriteit 2%

U kunt gebruiken

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

Je kunt ook aangeven welke kleur je wilt met Transparantie.

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

a voor alfa(transparant) waarde r-rood g-groen b-blauw


Antwoord 6

gebruik de volgende 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" />

Antwoord 7

Er zijn veel verschillende manieren om kleur in de tekstweergave in te stellen.

  1. Voeg kleurwaarde toe in studio res->values->colors.xml als

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

    Stel nu de kleur in xml of activiteitsklasse in als

    text.setTextColor(getResources().getColor(R.color.color_purple)
    
  2. Als je direct een kleurcode wilt geven, gebruik dan onderstaande Color.parseColor code

    textView.setTextColor(Color.parseColor("#ffffff"));   
    
  3. U kunt ook RGB gebruiken

    text.setTextColor(Color.rgb(200,0,0));
    
  4. Gebruik kan ook directe hexcode gebruiken voor textView. Je kunt ook gewone HEX invoegen, zoals:

    text.setTextColor(0xAARRGGBB);
    
  5. Je kunt ook argb gebruiken met alfawaarden.

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

    a voor Alpha (Transparant) v.

  6. En als je de Compat-bibliotheek gebruikt, kun je zoiets als dit doen

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

Antwoord 8

Normaal doe ik dit voor alle weergaven:

myTextView.setTextColor(0xAARRGGBB);

waar

  • AA definieert alfa (00 voor transparant, FF voor ondoorzichtig)

  • RRGGBB definieert de normale HTML-kleurcode (zoals FF0000 voor rood).


Antwoord 9

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

In het bestand colors.xmlschrijft u de onderstaande code:

<color name="colorWhite">#FFFFFF</color>

Antwoord 10

Als u van plan bent om setTextAppearancete gebruiken, moet u weten dat het de tekstkleur zal overschrijven met de stijl die is overgenomen van het thema. Dus als je beide wilt gebruiken, stel de kleur dan achterafin.

Dit werkt:

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

Terwijl dit ervoor zorgt dat uw tekstkleur bijvoorbeeld wit is (voor een donker thema) of zwart (voor het lichte thema):

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

In tegenstelling hiermee is de volgorde in XML willekeurig.


Antwoord 11

Ik geloof dat als je een kleur wilt specificeren als bron (in het XML-bestand ), moet u de ARGB-waarde opgeven (niet alleen de RGB-waarde).

Probeer uw kleurwaarde te wijzigen in #FFFF0000. Het zou je ROOD moeten geven.


Antwoord 12

text.setTextColor(getResource().getColor(R.color.black))je hebt een zwarte kleur gemaakt in color.xml.

OF

text.setTextColor(Color.parseColor("#000000"))typ hier de gewenste hexcode

OF

text.setTextColor(Color.BLACK)u kunt statische kleurvelden gebruiken


Antwoord 13

Gebruik:

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

Antwoord 14

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

of

myTextView.setTextColor(0xAARRGGBB);

Antwoord 15

Met Adapter kun je de tekstkleur instellen met deze code:

holder.text_view = (TextView) convertView.findViewById(R.id.text_view);
holder.text_view.setTextColor(Color.parseColor("#FF00FF"));

Antwoord 16

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

Bovenstaande code werkt aan mijn kant. Hier is texteen TextViewwaarop kleur moet worden ingesteld.


Antwoord 17

text1.setTextColor(Color.parseColor("#000000"));

Antwoord 18

Kotlin-uitbreidingsoplossing

Voeg deze toe om het wijzigen van de tekstkleur eenvoudiger te maken

Voor het instellen van ColorInt

myView.textColor = Color.BLACK // or Color.parseColor("#000000"), etc.
var TextView.textColor: Int
get() = currentTextColor
set(@ColorInt color) {
    setTextColor(color)
}

Voor het instellen van ColorRes

myView.setTextColorRes(R.color.my_color)
fun TextView.setTextColorRes(@ColorRes colorRes: Int) {
    val color = ContextCompat.getColor(context, colorRes)
    setTextColor(color)
}

Antwoord 19

Vanaf API 23 is getResources().getColor()verouderd.

Gebruik dit in plaats daarvan:

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

Antwoord 20

  textViewStatus.setTextColor(res.getColor(R.color.green));

Antwoord 21

In Adapter kun je de tekstkleur instellen met deze code:

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

Antwoord 22

als je direct een kleurcode wilt geven, gebruik dan

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

of als je een kleurcode uit de kleurenmap wilt geven, gebruik dan

textView.setTextColor(R.color.white);

Antwoord 23

Om de kleur van een TextView in te stellen, is TextView.setTextColor(R.color.YOURCOLOR)niet genoeg!

Het moet zo worden gebruikt –

TextView myText = (TextView) findViewById(R.id.YoutTextViewID);
myText.setTextColor(getResources().getColor(R.color.YOURCOLOR);

OF

myText.setTextColor(Color.parseColor("#54D66A"));

Antwoord 24

holder.userType.setTextColor(context.getResources().getColor(
                    R.color.green));

Antwoord 25

Probeer dit:

TextView textview = (TextView) findViewById(R.id.textview );
textview .setTextColor(Color.parseColor("#85F85F"));

Antwoord 26

Op dezelfde manier gebruikte ik color.xml:

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

Voor het instellen van de TextViewachtergrond zoals:

textView.setTextColor(R.color.white);

Ik kreeg een andere kleur, maar toen ik de onderstaande code gebruikte, kreeg ik de werkelijke kleur.

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

Antwoord 27

Ik heb het op deze manier gedaan:
Maak een XML-bestand met de naam Colors in de map res/values.

Mijn kleuren.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>

Om deze kleuren uit het xml-bestand te halen, heb ik deze code gebruikt:
valor het is een TextView, en ctx het is een Context-object. Ik gebruik het niet vanuit een activiteit, maar een BaseAdapter naar een ListView. Daarom heb ik dit contextobject gebruikt.

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

Ik hoop dat het helpt.


Antwoord 28

Voor het verschaffen van RGB-waarden: text.setTextColor(Color.rgb(200,0,0));
Voor het parseren van de kleur van een hex-waarde:
text.setTextColor(Color.parseColor("#FFFFFF"));


Antwoord 29

Als u zich in een adapter bevindt en nog steeds een kleur wilt gebruiken die is gedefinieerd in middelen, kunt u de volgende aanpak proberen:

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

ANTWOORD 30

TextView textresult = (TextView)findViewById(R.id.textView1);
textresult.setTextColor(Color.GREEN);

Other episodes