Respostas:
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
textView.setTypeface(null, Typeface.NORMAL);
Para manter o tipo de letra anterior
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)
textView.setTypeface(textView.getTypeface(), Typeface.NORMAL);
não removerá o estilo em negrito ou itálico de a TextView
. Você precisará usar textView.setTypeface(null, Typeface.NORMAL);
para isso.
textView.setTypeface(Typeface.create(textView.getTypeface(), Typeface.NORMAL), Typeface.NORMAL);
Tente fazer isso TextView
para negrito ou itálico
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);
isso não fará o mesmo (limpar um estilo de fonte existente)?
Você pode fazer programaticamente 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
Você pode definir diretamente no arquivo 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
By the way Isso também ajudará os outros.
Você tem duas opções:
Opção 1 (funciona apenas em negrito, itálico e sublinhado):
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));
Opção 2:
Use um Spannable ; é mais complicado, mas você pode modificar dinamicamente os atributos de texto (não apenas negrito / itálico, também cores).
typeFace
você pode definir um estilo único para todo o texto.
Você pode fazer programaticamente usando o setTypeface()
método:
Abaixo está o código para o Tipo de letra padrão
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
e se você deseja definir um tipo de letra personalizado :
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
Você pode definir diretamente no arquivo XML da <TextView />
seguinte maneira:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
Ou você pode definir sua fonte de favoritos (dos ativos). para mais informações veja o link
TextView text = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
agora defina as textview
propriedades ..
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
Seria
yourTextView.setTypeface(null,Typeface.DEFAULT_BOLD);
e itálico deve poder substituir Typeface.DEFAULT_BOLD
com Typeface.DEFAULT_ITALC
.
Deixe-me saber como isso funciona.
Use textView.setTypeface(Typeface tf, int style);
para definir a propriedade de estilo do TextView
. Consulte a documentação do desenvolvedor para mais informações.
Tente o seguinte:
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
Tente o seguinte:
TextView textview = (TextView)findViewById(R.id.textview_idname);
textview.setTypeface(null,Typeface.BOLD);
A maneira padrão de fazer isso é usar os estilos personalizados. Ex-
Em styles.xml
acrescentar o seguinte.
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="MyApp.TextAppearance.LoginText">
<item name="android:textStyle">bold|italic</item>
</style>
Aplique esse estilo ao seu da TextView
seguinte maneira.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyApp.TextAppearance.LoginText" />
Uma maneira de fazer isso é:
myTextView.setTypeface(null, Typeface.ITALIC);
myTextView.setTypeface(null, Typeface.BOLD_ITALIC);
myTextView.setTypeface(null, Typeface.BOLD);
myTextView.setTypeface(null, Typeface.NORMAL);
Outra opção, se você deseja manter o tipo de letra anterior e não deseja perder a aplicação anterior, então:
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 manter o tipo de letra anterior
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)
Você pode tentar assim:
<string name="title"><u><b><i>Your Text</i></b></u></string>
A maneira mais fácil de fazer com base nos critérios de seleção de estilo é:
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 eu quero usar uma fonte personalizada, apenas uma conjunção de várias respostas funciona para mim. Obviamente, as configurações no meu layout.xml
gosto android:textStlyle="italic"
foram ignoradas pelo AOS. Então, finalmente, tive que fazer o seguinte: na strings.xml
cadeia de destino foi declarada como:
<string name="txt_sign"><i>The information blah blah ...</i></string>
adicionalmente no código:
TextView textSign = (TextView) findViewById(R.id.txt_sign);
FontHelper.setSomeCustomFont(textSign);
textSign.setTypeface(textSign.getTypeface(), Typeface.ITALIC);
Eu não tentei a Spannable
opção (que eu assumo que DEVE funcionar), mas
textSign.setText(Html.fromHtml(getString(R.string.txt_sign)))
não teve efeito. Além disso, se eu remover o italic tag
de strings.xml
deixar setTypeface()
tudo sozinho, também não terá efeito. Android complicado ...
E, como explicado aqui Recursos de sequência de desenvolvedores do Android, se você precisar usar parâmetros em seu recurso de texto com estilo, precisará escapar dos colchetes de abertura
<resources>
<string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.</string>
</resources>
e chame formatHtml (string)
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);
Ao usar tags simplificadas com 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));
A melhor maneira é defini-lo em 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>
E atualize-o em 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) Você pode configurá-lo com TypeFace. 2) Você pode usar diretamente em strings.xml (na sua pasta de valores) 3) Você pode String myNewString = "Este é o meu texto em negrito Esta é a minha string em itálico Esta é a minha string sublinhada
Você pode definir o tipo de letra diferente usando o exemplo abaixo -
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
Ou se você deseja definir uma fonte diferente e seu tipo de letra. Adicione-o ao ativo ou à pasta bruta e use-o como
Typeface face= Typeface.createFromAsset(getAssets(), "font/font.ttf");
tv1.setTypeface(face);
Typeface face1= Typeface.createFromAsset(getAssets(), "font/font1.ttf");
tv2.setTypeface(face1);