Respuestas:
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
textView.setTypeface(null, Typeface.NORMAL);
Para mantener el tipo de letra anterior
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)
textView.setTypeface(textView.getTypeface(), Typeface.NORMAL);
no eliminará el estilo en negrita o cursiva de a TextView
. Tendrá que usar textView.setTypeface(null, Typeface.NORMAL);
para eso.
textView.setTypeface(Typeface.create(textView.getTypeface(), Typeface.NORMAL), Typeface.NORMAL);
Pruebe esto para configurarlo en TextView
negrita o cursiva
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
tv.setTypeface(Typeface.create(tv.getTypeface(), Typeface.NORMAL));
tv.setTypeface(null, Typeface.BOLD);
¿no hará esto lo mismo (borrar un estilo de letra existente)?
Puedes 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
Puede configurarlo directamente en un archivo XML <TextView />
como:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
with in Java and without using XML
por cierto También ayudará a otros.
Tienes dos opciones:
Opción 1 (solo funciona para negrita, cursiva y subrayado):
String s = "<b>Bolded text</b>, <i>italic text</i>, even <u>underlined</u>!"
TextView tv = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
tv.setText(Html.fromHtml(s));
Opcion 2:
Use un Spannable ; es más complicado, pero puede modificar dinámicamente los atributos del texto (no solo negrita / cursiva, sino también colores).
typeFace
usted puede establecer un estilo único para todo el texto.
Puedes hacerlo programáticamente usando el setTypeface()
método:
A continuación se muestra el código para el tipo de letra predeterminado
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
y si quieres configurar Tipografía personalizada :
textView.setTypeface(textView.getTypeface(), Typeface.NORMAL); // for Normal Text
textView.setTypeface(textView.getTypeface(), Typeface.BOLD); // for Bold only
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC); // for Italic
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC); // for Bold and Italic
Puede configurar directamente en un archivo XML de <TextView />
esta manera:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
O puede configurar su fuente favorita (de los activos). para más información ver enlace
TextView text = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
ahora establezca las textview
propiedades ..
text.setTypeface(null, Typeface.BOLD); //-- for only bold the text
text.setTypeface(null, Typeface.BOLD_ITALIC); //-- for bold & italic the text
text.setTypeface(null, Typeface.ITALIC); // -- for italic the text
Podría ser
yourTextView.setTypeface(null,Typeface.DEFAULT_BOLD);
y en cursiva debería poder reemplazarse Typeface.DEFAULT_BOLD
por Typeface.DEFAULT_ITALC
.
Déjame saber cómo funciona.
Se usa textView.setTypeface(Typeface tf, int style);
para establecer la propiedad de estilo de TextView
. Consulte la documentación del desarrollador para obtener más información.
Prueba esto:
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
La forma estándar de hacerlo es utilizar los estilos personalizados. Ex-
En styles.xml
agregar lo siguiente.
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="MyApp.TextAppearance.LoginText">
<item name="android:textStyle">bold|italic</item>
</style>
Aplica este estilo a tu de la TextView
siguiente manera.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyApp.TextAppearance.LoginText" />
Una forma de hacerlo es:
myTextView.setTypeface(null, Typeface.ITALIC);
myTextView.setTypeface(null, Typeface.BOLD_ITALIC);
myTextView.setTypeface(null, Typeface.BOLD);
myTextView.setTypeface(null, Typeface.NORMAL);
Otra opción si desea mantener el tipo de letra anterior y no quiere perder la aplicada anteriormente:
myTextView.setTypeface(textView.getTypeface(), Typeface.NORMAL);
myTextView.setTypeface(textView.getTypeface(), Typeface.BOLD);
myTextView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
myTextView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
textView.setTypeface(null, Typeface.NORMAL);
Para mantener el tipo de letra anterior
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)
Puedes intentarlo así:
<string name="title"><u><b><i>Your Text</i></b></u></string>
La forma más fácil de hacerlo según los criterios de selección de estilo es:
String pre = "", post = "";
if(isBold){
pre += "<b>"; post += "</b>";
}
if(isItalic){
pre += "<i>"; post += "</i>";
}
if(isUnderline){
pre += "<u>"; post += "</u>";
}
textView.setText(Html.fromHtml(pre + editText.getText().toString()+ post));
// you can also use it with EidtText
editText.setText(Html.fromHtml(pre + editText.getText().toString()+ post));
Como quiero usar una fuente personalizada, solo la conjunción de varias respuestas me funciona. Obviamente, la configuración en mi layout.xml
gusto android:textStlyle="italic"
fue ignorada por AOS. Así que finalmente tuve que hacer lo siguiente: en strings.xml
la cadena de destino se declaró como:
<string name="txt_sign"><i>The information blah blah ...</i></string>
luego adicionalmente en código:
TextView textSign = (TextView) findViewById(R.id.txt_sign);
FontHelper.setSomeCustomFont(textSign);
textSign.setTypeface(textSign.getTypeface(), Typeface.ITALIC);
No probé la Spannable
opción (que supongo que DEBE funcionar) pero
textSign.setText(Html.fromHtml(getString(R.string.txt_sign)))
no tuvo efecto Además, si elimino el italic tag
de strings.xml
dejar el setTypeface()
solo, tampoco tiene efecto. Android complicado ...
Y como se explica aquí Recursos para cadenas de desarrolladores de Android si necesita usar parámetros en su recurso de texto con estilo, debe escapar de los corchetes de apertura
<resources>
<string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.</string>
</resources>
y llame a formatHtml (cadena)
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);
Al usar etiquetas simplificadas con AndroidX, considere usar HtmlCompat.fromHtml ()
String s = "<b>Bolded text</b>, <i>italic text</i>, even <u>underlined</u>!"
TextView tv = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
tv.setText(HtmlCompat.fromHtml(s, FROM_HTML_MODE_LEGACY));
La mejor manera es definirlo en styles.xml
<style name="common_txt_style_heading" parent="android:style/Widget.TextView">
<item name="android:textSize">@dimen/common_txtsize_heading</item>
<item name="android:textColor">@color/color_black</item>
<item name="android:textStyle">bold|italic</item>
</style>
Y actualízalo en TextView
<TextView
android:id="@+id/txt_userprofile"
style="@style/common_txt_style_heading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/margin_small"
android:text="@string/some_heading" />
1) Puede configurarlo con TypeFace. 2) Puede usar directamente en strings.xml (en su carpeta de valores) 3) Puede String myNewString = "Este es mi texto en negrita Esta es mi cadena en cursiva Esta es mi cadena subrayada
Puede configurar los diferentes tipos de letra con el ejemplo que se muestra a continuación:
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
O si desea establecer una fuente diferente y su tipo de letra. Añádelo a un activo o carpeta sin procesar y luego úsalo como
Typeface face= Typeface.createFromAsset(getAssets(), "font/font.ttf");
tv1.setTypeface(face);
Typeface face1= Typeface.createFromAsset(getAssets(), "font/font1.ttf");
tv2.setTypeface(face1);