Cómo cambiar el estilo de un TextView en tiempo de ejecución
Tengo una aplicación para Android en la que, cuando el usuario TextView
un TextView
, me gustaría aplicar un estilo definido.
Pensé encontrar un textview.setStyle()
pero no existe. Lo intenté
- Android - Configuración de TextView a negrita no funciona
- ¿Qué es (s / g) etFreezesText en TextView?
- Html.fromHtml () está obsoleto, ¿cuál es la alternativa?
- Cómo eliminar el espacio superior y inferior en la vista de texto de Android
- ¿Cómo puedo colocar dos TextView en una misma línea, en un diseño vertical
textview.setTextAppearance();
Pero no funciona.
- Cómo eliminar las líneas antiguas de un TextView
- En un Android TextView, ¿es posible insertar párrafos?
- Necesita hacer que TextView se desplace verticalmente automáticamente
- Manejar enlace textview hacer clic en mi aplicación android
- Última palabra mostrada en una vista de texto
- Obtener el texto visible actual en la vista de texto
- Android: obtener utilizando Textview.SetText (characterSequence)
- Android textview settext mostrar nullpointer excepción
Lo hice creando un nuevo archivo XML res/values/style.xml
como sigue:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="boldText"> <item name="android:textStyle">bold|italic</item> <item name="android:textColor">#FFFFFF</item> </style> <style name="normalText"> <item name="android:textStyle">normal</item> <item name="android:textColor">#C0C0C0</item> </style> </resources>
También tengo una entrada en mi archivo "strings.xml" como este:
<color name="highlightedTextViewColor">#000088</color> <color name="normalTextViewColor">#000044</color>
Entonces, en mi código creé un ClickListener para atrapar el evento tap en ese TextView: EDIT: A partir de la API 23 'setTextAppearance' está obsoleto
myTextView.setOnClickListener(new View.OnClickListener() { public void onClick(View view){ //highlight the TextView //myTextView.setTextAppearance(getApplicationContext(), R.style.boldText); if (Build.VERSION.SDK_INT < 23) { myTextView.setTextAppearance(getApplicationContext(), R.style.boldText); } else { myTextView.setTextAppearance(R.style.boldText); } myTextView.setBackgroundResource(R.color.highlightedTextViewColor); } });
Para cambiarlo de nuevo, usaría esto:
if (Build.VERSION.SDK_INT < 23) { myTextView.setTextAppearance(getApplicationContext(), R.style.normalText); } else{ myTextView.setTextAppearance(R.style.normalText); } myTextView.setBackgroundResource(R.color.normalTextViewColor);
Como Jonathan sugirió, usando textView.setTextTypeface
funciona, lo usé en una aplicación hace unos segundos.
textView.setTypeface(null, Typeface.BOLD); // Typeface.NORMAL, Typeface.ITALIC etc.
TextView tvCompany = (TextView)findViewById(R.layout.tvCompany); tvCompany.setTypeface(null,Typeface.BOLD);
Usted un conjunto de código. Tipo de letra
Encontré textView.setTypeface(Typeface.DEFAULT_BOLD);
Para ser el método más simple.
Programáticamente: Tiempo de ejecución
Puede hacer mediante programación usando setTypeface ():
textView.setTypeface(null, Typeface.NORMAL); // for Normal Text textView.setTypeface(null, Typeface.BOLD); // for Bold only textView.setTypeface(null, Typeface.ITALIC); // for Italic textView.setTypeface(null, Typeface.BOLD_ITALIC); // for Bold and Italic
XML: Tiempo de diseño
También puede establecer en XML:
android:textStyle="normal" android:textStyle="normal|bold" android:textStyle="normal|italic" android:textStyle="bold" android:textStyle="bold|italic"
Espero que esto ayude
Sumado
Vea doco para setText () en TextView http://developer.android.com/reference/android/widget/TextView.html
Para diseñar sus cadenas, asigne los objetos android.text.style. * A SpannableString o vea la documentación Tipos de recursos disponibles para ver un ejemplo de configuración de texto con formato en el archivo de recursos XML.
Dependiendo del estilo que desee configurar, debe utilizar diferentes métodos. TextAppearance tiene su propio setter, TypeFace tiene su propio setter, el fondo tiene su propio setter, etc.
Prueba esta línea de código.
textview.setTypeface(textview.getTypeface(), Typeface.DEFAULT_BOLD);
Aquí, obtendrá Typeface actual de este textview y lo reemplazará usando el nuevo Typeface. El nuevo tipo de letra aquí es DEFAULT_BOLD
pero puedes aplicar muchos más.
- OnActivityResult () llamado prematuramente
- Diferencia entre android-support-v7-appcompat y android-support-v4