Je veux dire quelque chose comme:
<string name="error" color="#9a1d1d">Error!</string>
Comme suggéré par rekire, il est impossible de définir les couleurs de la manière que vous utilisez.
Vous pouvez utiliser la méthode suggérée par rekire.
En vous xml, vous pouvez spécifier la couleur de votre textview comme
Android:textColor="#0EFFFF"
Vous pouvez également définir la couleur du texte par programme
TextView tv= (TextView)findviewById(R.id.textView1);
tv.setTextColor(Color.RED);
Pour définir la couleur de mots particuliers dans TextView, vous pouvez utiliser une chaîne pouvant être spannée.
TextView tv= (TextView)findviewById(R.id.textView1);
tv.setText("");
String s="Hello World";
SpannableString ss= new SpannableString(s);
ss.setSpan(new ForegroundColorSpan(Color.GREEN), 0, 5, 0);
tv.setText(ss);
Avant 4.x, vous pourriez faire ceci:
<string name="error"><font fgcolor="#ff9a1d1d">Error!</font></string>
Cependant, bug https://code.google.com/p/Android/issues/detail?id=58192 a interrompu cette fonctionnalité car il introduisait un analyseur syntaxique d'entiers ne pouvant pas gérer les nombres avec le bit le plus élevé défini Malheureusement, vous ne pouvez pas omettre la partie opacité de la couleur (ce que la plupart des gens préfèrent régler sur ff comme dans cet exemple.)
Hier encore, j'ai appris une solution de rechange intelligente. Ce que vous faites est d’annuler la valeur de couleur hexadécimale en complément à deux. Cela dépend de votre calculatrice hexadécimale, mais le moyen le plus simple consiste à soustraire votre couleur de 0x100000000. Dans votre cas, cela entraînerait 0x100000000 - 0xff9a1d1d = 0x65e2e3. (Ou vous pouvez simplement l’inverser, par exemple 0065e2e2, ce qui serait assez proche). Vous annulez ensuite ceci avec un signe moins:
<string name="error"><font fgcolor="-#65e2e3">Error!</font></string>
et voila! vous avez votre couleur désirée.
Félicitations à TWiStErRob pour avoir découvert cela dans https://stackoverflow.com/a/11577658/338479
ETA: Je viens de découvrir que cela plantera votre application si vous le faites sur un système 2.x. il lève une exception NumberFormat
Placez ce code dans le fichier string.xml
:
<font color="Red"><a href="[email protected]">HERE</a></font>
Non, ce n'est pas possible, vous devez le spécifier dans votre mise en page. Mais vous pouvez mettre la couleur dans votre fichier colors.xml.
couleurs.xml
<color name="foo">#abc123</color>
your_layout.xml
<TextView Android:textColor="@color/foo" Android:text="@string/error" />
C'est possible d'essayer ça ..
string.xml
<string name="colorText"><![CDATA[ Give your string here. Like, This sentence has a<b><font color=#FF0000>Red color</b> text.]]></string>
ExampleClass.Java
TextView colorTextView = (TextView)findViewById(R.id.colorText);
String customColorText = getResources().getString(R.string.colorText)
colorTextView.setText(Html.fromHtml(customColorText));
Joyeux codage ....
Essaye celui-là
<string name="some_text">Font color is <font fgcolor="#ffff0000">red</font></string>
Créer une couleur dans le fichier colors.xml avec des valeurs
<color name ="red">#ff0000</color>
Dans votre strings.xml, faites quelque chose comme
<string name="some_text">The next Word is <font fgcolor="red">red</font> but that is all</string>
J'ai trouvé que je ne pouvais pas utiliser le code hexadécimal directement dans strings.xml
Strings.xml
<string name="pbs_setup_title">Select %1$s <font fgcolor="#FF33B5E5">brand</font> or scan the <font fgcolor="#FFFF0000">Remote</font></string>
classe.Java
String SelectedDeviceType_Str = "TV"
SetupYourDevice_TextView.setText(Html.fromHtml(String.format(Html.toHtml(new SpannedString(getResources().getText(R.string.pbs_setup_title))),
SelectedDeviceType_Str)));
D'après mon expérience, j'ai enregistré la couleur dans strings.xml
<color name="name_color">#ffffff</color>
Quand j'ai une vue et mis `
nameView.setBackgroundColor (R.color.name_color);
c'est bon.
Mais quand je mets la couleur pour que le texte ressemble à
name_TextView.setTextColor (R.color.name_color);
ce n'est pas Effet .
Si vous rencontrez le même problème, il suffit de définir
name_TextView.setTextColor (Color.parseColor ("le code hexa de la couleur que vous voulez"));
J'espère que ça vous aidera.
J'espère que cette aide pour vous.
TextView textView=findViewById(R.id.text);
String error= getResources().getString(R.string.error);
ForegroundColorSpan fgColor=new ForegroundColorSpan(Color.RED); // here set the color of Text
SpannableString ss=new SpannableString(error); //here set the text to spannableString
ss.setSpan(fgColor,0,error.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //here which color , when to where you will set the color
textView.setText(ss);
Qu'est-ce que SpannableString dans Android?
Exemple Android SpannableString. SpannableString dans Android est un excellent moyen de styler les chaînes dans un TextView. En termes simples, cela permet à un TextView de fournir différents styles pour différentes zones de texte.
Dans Strings.xml:
<resources>
<color name="etDisabled">#ac8888</color>
<color name="myorange">#f56415</color>
<color name="mygreen">#95cd08</color>
</resources>
Puis dans le code:
TextView myText = (TextView) findViewById(R.id.tvJugador1);
myText.setTextColor(R.color.mygreen);
Vous pouvez changer la couleur du texte avec
string.xml
:
<string name="completed_running_not_alloted"><font fgcolor="#6DC287">Completed /</font><font fgcolor="#FFCC29"> Running /</font> Not Alloted</string>
Si vous souhaitez définir du texte par programme, vous pouvez l'utiliser, il le fera restituer la couleur de votre texte dynamiquement.
private SpannableStringBuilder setSpan(int completed, int running){
SpannableStringBuilder span1 = new SpannableStringBuilder(completed+" / ");
ForegroundColorSpan color1=new ForegroundColorSpan(Color.parseColor("#6DC287"));
span1.setSpan(color1, 0, span1.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
SpannableStringBuilder span2 = new SpannableStringBuilder(running+"");
ForegroundColorSpan color2=new ForegroundColorSpan(Color.parseColor("#FFCC29"));
span2.setSpan(color2, 0, span2.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
Spanned concatenated=(Spanned) TextUtils.concat(span1, span2);
return new SpannableStringBuilder(concatenated);
}