studio reales proyectos programacion libro introducción incluye herramientas fundamentos fuente español código con avanzado aplicaciones java android textview

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