versiones pie oreo developer descargar android

oreo - android pie



Cambiar el color dentro de strings.xml (11)

Soy nuevo en Android, y me gustaría saber cómo puedo cambiar el color de la fuente dentro del archivo strings.xml en una etiqueta de cadena.

por ejemplo tengo:

<string name="hello_world">Hello world!</string>

Solo lo visualizo como rojo y azul

gracias


No establece dichos atributos en el tipo de archivos strings.xml . Debes configurarlo en tu código. o (cuál es la mejor solución) crea el estilo con los colores que deseas y aplica a tu TextView


Para aquellos que quieren poner color en String.xml directamente y no quieren usar color ...

ejemplo

<string name="status_stop"><font fgcolor=''#FF8E8E93''>Stopped</font></string> <!--gray--> <string name="status_running"><font fgcolor=''#FF4CD964''>Running</font></string> <!--red--> <string name="status_error"><font fgcolor=''#FFFF3B30''>Error</font></string> <!--green-->

como ve hay gris, rojo y verde, hay 8 caracteres, los primeros dos para transparencia y otros para color.

Ejemplo

This a description of color and transparency # FF FF3B30 Opacity Color

Nota: Ponga color en el texto en el mismo string.xml no funcionará en Android 6.0 y superior

Tabla de opacidad

100% — FF 99% — FC 98% — FA 97% — F7 96% — F5 95% — F2 94% — F0 93% — ED 92% — EB 91% — E8 90% — E6 89% — E3 88% — E0 87% — DE 86% — DB 85% — D9 84% — D6 83% — D4 82% — D1 81% — CF 80% — CC 79% — C9 78% — C7 77% — C4 76% — C2 75% — BF 74% — BD 73% — BA 72% — B8 71% — B5 70% — B3 69% — B0 68% — AD 67% — AB 66% — A8 65% — A6 64% — A3 63% — A1 62% — 9E 61% — 9C 60% — 99 59% — 96 58% — 94 57% — 91 56% — 8F 55% — 8C 54% — 8A 53% — 87 52% — 85 51% — 82 50% — 80 49% — 7D 48% — 7A 47% — 78 46% — 75 45% — 73 44% — 70 43% — 6E 42% — 6B 41% — 69 40% — 66 39% — 63 38% — 61 37% — 5E 36% — 5C 35% — 59 34% — 57 33% — 54 32% — 52 31% — 4F 30% — 4D 29% — 4A 28% — 47 27% — 45 26% — 42 25% — 40 24% — 3D 23% — 3B 22% — 38 21% — 36 20% — 33 19% — 30 18% — 2E 17% — 2B 16% — 29 15% — 26 14% — 24 13% — 21 12% — 1F 11% — 1C 10% — 1A 9% — 17 8% — 14 7% — 12 6% — 0F 5% — 0D 4% — 0A 3% — 08 2% — 05 1% — 03 0% — 00

Referencia: entender los colores en Android (6 caracteres)

Actualización: 10 / OCT / 2016

Esta función es compatible con todas las versiones de Android, no probé en Android 7.0. Use esta función para obtener color y establecer en textview

Ejemplo de formato xml en cadenas de archivos y colores

<!-- /res/values/strings.xml --> <string name="status_stop">Stopped</string> <string name="status_running">Running</string> <string name="status_error">Error</string> <!-- /res/values/colors.xml --> <color name="status_stop">#8E8E93</color> <color name="status_running">#4CD964</color> <color name="status_error">#FF3B30</color>

Función para obtener color de xml con validación para Android 6.0 y superior

public static int getColorWrapper(Context context, int id) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//if actual version is >= 6.0 return context.getColor(id); } else { //noinspection deprecation return context.getResources().getColor(id); } }

Ejemplo:

TextView status = (TextView)findViewById(R.id.tvstatus); status.setTextColor(getColorWrapper(myactivity.this,R.color.status_stop));

Referencia: getColor (int id) obsoleto en Android 6.0 Marshmallow (API 23)


Prueba esto

Para el color rojo,

<string name="hello_worldRed"><![CDATA[<b><font color=#FF0000>Hello world!</font></b>]]></string>

Para azul,

<string name="hello_worldBlue"><![CDATA[<b><font color=#0000FF>Hello world!</font></b>]]></string>

En código java,

//red color text TextView redColorTextView = (TextView)findViewById(R.id.redText); String redString = getResources().getString(R.string.hello_worldRed) redColorTextView.setText(Html.fromHtml(redString)); //Blue color text TextView blueColorTextView = (TextView)findViewById(R.id.blueText); String blueString = getResources().getString(R.string.hello_worldBlue) blueColorTextView.setText(Html.fromHtml(blueString));


Si desea admitir el formato de texto desde su archivo strings.xml , debe escapar de las etiquetas o usar una sección CDATA . De lo contrario, Android simplemente las ignora al leer el archivo de recursos.

p.ej

<string name="hello_world"> <![CDATA[ <p>This is a html-formatted string with <b>bold</b> and <i>italic</i> text</p> <p>This is another paragraph of the same string.</p> ]]> </string>

O

String styledText = "This is <font color=''red''>simple</font>."; textView.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE);


Si desea cambiar el color de la fuente dentro del archivo string.xml , puede probar el siguiente código.

<resources> <string name="hello_world"><font fgcolor="#ffff0000">Hello world!</font></string> </resources>


Simplemente agregue su texto entre las etiquetas de fuente:

para el color azul

<string name="hello_world"><font color=''blue''>Hello world!</font></string>

o para el color rojo

<string name="hello_world"><font color=''red''>Hello world!</font></string>


Tu no strings.xml está aquí para definir los mensajes de texto sin formato. Debería (debe) usar styles.xml para definir estilos visuales reutilizables para aplicar a sus widgets.

Considere una buena práctica separar las preocupaciones. Puede trabajar en los estilos visuales independientemente de los mensajes de texto.


Use CDATA de la siguiente manera para formatear su texto

TextView TextView; TextView=(TextView)findviewbyId(R.id.yourtextid); TextView.setText(getResources().getString(R.hello_world);); TextView.setTextColor(Color.BLUE); OR TextView.setTextColor(Color.RED);

Simplemente agregue cualquier etiqueta que desee antes del <![CDATA[ y obtendrá la salida adecuada.


Yo usaría SpannableString para cambiar el color.

int colorBlue = getResources().getColor(R.color.blue); String text = getString(R.string.text); SpannableString spannable = new SpannableString(text); // here we set the color spannable.setSpan(new ForegroundColorSpan(colorBlue), 0, text.length(), 0);

O puede intentar this


<resources> <string name="app_name">DemoShareActionButton</string> <string name="intro_message"> <b> <![CDATA[ This sample shows you how a provide a context-sensitive ShareActionProvider. ]]> </b> </string>

No puede escribir ni cambiar el valor de String.xml en Run Time o por código.


<string name="hello_world"><font fgcolor="red">Hello</font> </font fgcolor="blue">world!</font></string>

Pero tenga en cuenta que esto solo funciona en una lista relativamente corta de colores incorporados: aguamarina, negro, azul, fucsia, verde, gris, lima, granate, azul marino, oliva, púrpura, rojo, plateado, verde azulado, blanco y amarillo. Consulte https://.com/a/31655150/338479 para ver una forma de hacerlo con colores arbitrarios.