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.

  • ¿Por qué TextView (con un ID) no guarda automáticamente su estado?
  • Android TextView id con una variable?
  • Escala textSize en un TextView
  • TextView: lineSpacingMultiplier y lineSpacingExtra también se aplica a la última línea
  • ¿Cómo cambio el valor TextView dentro del código Java?
  • Spannable Vs Tipo Vs Html
  • Actualización de Textview en una actividad con servicio local
  • Cómo ajustar la altura de línea en TextView con varios tamaños de tipo?
  • Android: ¿define TextView TextStyle mediante programación?
  • Actualizar Android TextView
  • Palabra especial de Higlight en la vista de texto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.