Réponses:
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
textView.setTypeface(null, Typeface.NORMAL);
Pour conserver la police précédente
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)
textView.setTypeface(textView.getTypeface(), Typeface.NORMAL);
ne supprimera pas le style gras ou italique de a TextView
. Vous devrez utiliser textView.setTypeface(null, Typeface.NORMAL);
pour cela.
textView.setTypeface(Typeface.create(textView.getTypeface(), Typeface.NORMAL), Typeface.NORMAL);
Essayez ceci pour activer le TextView
gras ou l'italique
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);
ne fera- t- il pas de même (effacer un style de police existant)?
Vous pouvez le faire par programme en utilisant 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
Vous pouvez définir directement dans un fichier XML <TextView />
comme:
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
Au fait, cela aidera également les autres.
Vous avez deux options:
Option 1 (ne fonctionne que pour les caractères gras, italique et souligné):
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));
Option 2:
Utilisez un Spannable ; c'est plus compliqué, mais vous pouvez modifier dynamiquement les attributs de texte (non seulement gras / italique, mais aussi les couleurs).
typeFace
vous pouvez définir un style unique pour tout le texte.
Vous pouvez faire par programmation en utilisant la setTypeface()
méthode:
Voici le code de la police par défaut
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
et si vous souhaitez définir une police de caractères personnalisée :
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
Vous pouvez définir directement dans un fichier XML <TextView />
comme ceci:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
Ou vous pouvez définir votre police fav (à partir des ressources). pour plus d'informations, voir le lien
TextView text = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
définissez maintenant les textview
propriétés ..
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
Ce serait
yourTextView.setTypeface(null,Typeface.DEFAULT_BOLD);
et l'italique devrait pouvoir être remplacé Typeface.DEFAULT_BOLD
par Typeface.DEFAULT_ITALC
.
Faites-moi savoir comment cela fonctionne.
Utilisez textView.setTypeface(Typeface tf, int style);
pour définir la propriété de style du TextView
. Voir la documentation du développeur pour plus d'informations.
Essaye ça:
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
Essaye ça:
TextView textview = (TextView)findViewById(R.id.textview_idname);
textview.setTypeface(null,Typeface.BOLD);
La manière standard de procéder consiste à utiliser les styles personnalisés. Ex-
Dans styles.xml
ajouter ce qui suit.
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="MyApp.TextAppearance.LoginText">
<item name="android:textStyle">bold|italic</item>
</style>
Appliquez ce style à votre TextView
comme suit.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyApp.TextAppearance.LoginText" />
Vous pouvez notamment:
myTextView.setTypeface(null, Typeface.ITALIC);
myTextView.setTypeface(null, Typeface.BOLD_ITALIC);
myTextView.setTypeface(null, Typeface.BOLD);
myTextView.setTypeface(null, Typeface.NORMAL);
Une autre option si vous souhaitez conserver la police de caractères précédente et que vous ne voulez pas perdre la précédente application:
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);
Pour conserver la police précédente
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)
Vous pouvez essayer comme ceci:
<string name="title"><u><b><i>Your Text</i></b></u></string>
La manière la plus simple que vous pouvez faire en fonction des critères de sélection de style est:
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));
Puisque je veux utiliser une police personnalisée, seule la conjonction de plusieurs réponses me convient. De toute évidence, les paramètres de mon layout.xml
goût ont android:textStlyle="italic"
été ignorés par AOS. Donc, finalement, je devais faire comme suit: dans strings.xml
la chaîne cible a été déclarée comme:
<string name="txt_sign"><i>The information blah blah ...</i></string>
puis en plus dans le code:
TextView textSign = (TextView) findViewById(R.id.txt_sign);
FontHelper.setSomeCustomFont(textSign);
textSign.setTypeface(textSign.getTypeface(), Typeface.ITALIC);
Je n'ai pas essayé l' Spannable
option (qui je suppose DOIT fonctionner) mais
textSign.setText(Html.fromHtml(getString(R.string.txt_sign)))
n'a eu aucun effet. De plus, si je retire le italic tag
de strings.xml
laisser le setTypeface()
tout seul, cela n'a aucun effet non plus. Android délicat ...
Et comme expliqué ici Ressources pour les développeurs Android Si vous devez utiliser des paramètres dans votre ressource de texte stylé, vous devez échapper aux crochets d'ouverture
<resources>
<string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.</string>
</resources>
et appelez formatHtml (chaîne)
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);
C'est la seule chose qui a fonctionné pour moi sur un OnePlus 5T configuré avec la police OnePlus Slate ™:
textView.setTypeface(Typeface.create(textView.getTypeface(), useBold ? Typeface.BOLD : Typeface.NORMAL));
D'autres méthodes le feraient retomber sur Roboto lorsque BOLD ou NORMAL.
Lors de l'utilisation de balises simplifiées avec AndroidX, envisagez d'utiliser 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));
Le meilleur moyen est de le définir dans 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>
Et mettez-le à jour dans 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) Vous pouvez le définir avec TypeFace. 2) Vous pouvez utiliser directement dans strings.xml (dans votre dossier de valeurs) 3) Vous pouvez String myNewString = "Ceci est mon texte en gras Ceci est ma chaîne en italique Ceci est ma chaîne soulignée
Vous pouvez définir les différentes polices en utilisant l'exemple ci-dessous -
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
Ou si vous souhaitez définir une police différente et sa police de caractères. Ajoutez-le à l'actif ou au dossier brut, puis utilisez-le comme
Typeface face= Typeface.createFromAsset(getAssets(), "font/font.ttf");
tv1.setTypeface(face);
Typeface face1= Typeface.createFromAsset(getAssets(), "font/font1.ttf");
tv2.setTypeface(face1);