In XML kunnen we een tekstkleur instellen met de textColor
Attribuut, zoals android:textColor="#FF0000"
. Maar hoe verander ik het door codering?
Ik heb zoiets geprobeerd:
holder.text.setTextColor(R.color.Red);
waar holder
is slechts een klasse en text
is 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 Color
Klasse om natuurlijk hetzelfde effect te krijgen.
-
Color.parseColor
(handmatig) (zoals Lex gebruikt)text.setTextColor(Color.parseColor("#FFFFFF"));
-
Color.rgb
ENColor.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.xml
bestand 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.
-
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)
-
Als je direct een kleurcode wilt geven, gebruik dan onderstaande Color.parseColor code
textView.setTextColor(Color.parseColor("#ffffff"));
-
U kunt ook RGB gebruiken
text.setTextColor(Color.rgb(200,0,0));
-
Gebruik kan ook directe hexcode gebruiken voor textView. Je kunt ook gewone HEX invoegen, zoals:
text.setTextColor(0xAARRGGBB);
-
Je kunt ook argb gebruiken met alfawaarden.
text.setTextColor(Color.argb(0,200,0,0));
a voor Alpha (Transparant) v.
-
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(getApplicationContext(),R.color.colorWhite));
In het bestand colors.xml
schrijft 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 text
een 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 TextView
achtergrond 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);