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é

 textview.setTextAppearance(); 

Pero no funciona.

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.

  • Android.content.ActivityNotFoundException cuando el enlace no contiene http
  • Cómo colocar textview con x, y posición
  • Android: ellipsize end - Caracteres adicionales después de la elipse
  • Evitar que se rompa la palabra en TextView
  • TextView con diferentes fuentes y estilos?
  • ¿Cómo establecer el texto dentro de TextView para que esté en dos líneas?
  • Cómo funciona autolink: map work
  • El texto de TextView desaparece cuando se gira el dispositivo
  • Palabra especial de Higlight en la vista de texto
  • Obtención de la altura de la vista de texto antes de la representación en el diseño
  • En un Android TextView, ¿es posible insertar párrafos?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.