java - reales - libro de android studio en español pdf
Cómo cambiar el estilo de un TextView en tiempo de ejecución (8)
Al igual que Jonathan sugirió, al usar textView.setTextTypeface
funciona, lo acabo de usar en una aplicación hace unos segundos.
textView.setTypeface(null, Typeface.BOLD); // Typeface.NORMAL, Typeface.ITALIC etc.
Tengo una aplicación para Android en la que, cuando el usuario toca un TextView
, me gustaría aplicar un estilo definido.
Pensé encontrar un textview.setStyle()
pero no existe. Lo intenté
textview.setTextAppearance();
Pero no funciona.
Consulte doco para setText () en TextView http://developer.android.com/reference/android/widget/TextView.html
Para darle un estilo a sus cadenas, adjunte los objetos android.text.style. * A SpannableString, o consulte la documentación de Tipos de recursos disponibles para ver un ejemplo de cómo configurar el texto formateado en el archivo de recursos XML.
Dependiendo del estilo que desee establecer, debe usar diferentes métodos. TextAppearance tiene su propio setter, TypeFace tiene su propio setter, background tiene su propio setter, etc.
Lo hice creando un nuevo archivo XML res/values/style.xml
siguiente 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 una entrada en mi archivo "strings.xml" como esta:
<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 la 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, deberías usar esto:
if (Build.VERSION.SDK_INT < 23) {
myTextView.setTextAppearance(getApplicationContext(), R.style.normalText);
} else{
myTextView.setTextAppearance(R.style.normalText);
}
myTextView.setBackgroundResource(R.color.normalTextViewColor);
encontré textView.setTypeface(Typeface.DEFAULT_BOLD);
ser el método más simple.
prueba esta línea de código
textview.setTypeface(textview.getTypeface(), Typeface.DEFAULT_BOLD);
aquí, obtendrá la Tipografía actual de esta vista de texto y la reemplazará con la nueva Tipografía. El nuevo tipo de letra aquí es DEFAULT_BOLD
pero puede aplicar muchas más.
Programado: tiempo de ejecución
Puedes hacer programáticamente 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 puedes establecerlo 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
TextView tvCompany = (TextView)findViewById(R.layout.tvCompany);
tvCompany.setTypeface(null,Typeface.BOLD);
Usted lo configuró desde el código. Typeface