Tengo una aplicación de Android en la que, cuando el usuario toca un TextView, me gustaría aplicar un estilo definido.
Pensé en encontrar un textview.setStyle()pero no existe. Lo intenté
textview.setTextAppearance();
Pero no funciona.
Tengo una aplicación de Android en la que, cuando el usuario toca un TextView, me gustaría aplicar un estilo definido.
Pensé en encontrar un textview.setStyle()pero no existe. Lo intenté
textview.setTextAppearance();
Pero no funciona.
Respuestas:
Hice esto creando un nuevo archivo XML de la res/values/style.xmlsiguiente manera:
<?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 entradas en mi archivo "strings.xml" como este:
<color name="highlightedTextViewColor">#000088</color>
<color name="normalTextViewColor">#000044</color>
Luego, en mi código creé un ClickListener para atrapar el evento tap en ese TextView: EDITAR: A partir de API 23, 'setTextAppearance' está en desuso
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 volver a cambiarlo, 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 sugirió Jonathan, usando textView.setTextTypefaceWorks, 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);
Lo configura desde el código. Tipografía
Programáticamente: tiempo de ejecución
Puede hacerlo 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
Summved
Descubrí textView.setTypeface(Typeface.DEFAULT_BOLD);que es el método más simple.
prueba esta línea de código.
textview.setTypeface(textview.getTypeface(), Typeface.DEFAULT_BOLD);
aquí, obtendrá el tipo de letra actual de esta vista de texto y lo reemplazará con el nuevo tipo de letra. Aquí hay un nuevo tipo de letra, DEFAULT_BOLDpero puede aplicar muchos más.
Ver doco para setText () en TextView http://developer.android.com/reference/android/widget/TextView.html
Para diseñar sus cadenas, adjunte objetos android.text.style. * A SpannableString, o consulte la documentación de Tipos de recursos disponibles para ver un ejemplo de cómo configurar texto formateado en el archivo de recursos XML.