Voici le XML:
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/modal_list_row"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:paddingBottom="7.5dp"
Android:orientation="vertical" >
<TextView
Android:id="@+id/title_text_view"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true"
Android:layout_centerHorizontal="true"
Android:gravity="center"
Android:text="@string/alert_title_small"
Android:textColor="@color/alert_dialog_text_color"
Android:textSize="@dimen/alert_dialog_title_font_size"
Android:textStyle="bold" />
</RelativeLayout>
Bien que la disposition graphique affiche du texte en gras, ce n'est pas le cas sur l'appareil. Est-ce une chose de périphérique ou quoi?
Mettre à jour:
Pour les personnes qui continuent à demander le code XML complet, le voici mis à jour. Une mise en page relative simple. Et voici le code Java:
this.titleTextView.setText(this.modalListState.title);
Points à considérer: Cela pourrait-il être dû aux polices de caractères de l'appareil? Quelqu'un at-il Galaxy S3 à confirmer? Serait-ce le style d'activité? Voici celui utilisé pour l'application entière:
<resources xmlns:Android="http://schemas.Android.com/apk/res/Android">
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="Android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
<style name="TransparentActivity" >
<item name="Android:windowBackground">@Android:color/transparent</item>
<item name="Android:colorBackgroundCacheHint">@null</item>
<item name="Android:windowIsTranslucent">true</item>
<item name="Android:windowAnimationStyle">@Android:style/Animation</item>
<item name="Android:windowNoTitle">true</item>
<item name="Android:windowContentOverlay">@null</item>
<item name="Android:windowFullscreen">false</item>
</style>
Le style TransparentActivity est utilisé pour l'activité concernée.
Eh bien, j'ai trouvé une réponse idiote à ce problème. J'utilisais une police personnalisée sur le périphérique, pas celle par défaut. Une fois que je suis passé à celui par défaut, tout a fonctionné comme prévu!
il existe une méthode, vous pouvez définir la police textview en appelant la méthode setTypeface ...
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
et aussi se référer à ce lien ...
La plupart des réponses sont correctes.
Vous pouvez aussi utiliser ce qu'on appelle: SpannableString
Vous pouvez l'utiliser de cette façon:
String bold = "yes !";
String notBold = "no ";
SpannableString text = new SpannableString ( notBold + bold );
text.setSpan ( new StyleSpan ( Typeface.BOLD ) , notBold.length () , text .length () , 0 );
myTextView.setText ( text , BufferType.SPANNABLE );
Ce qui est bien avec SpannableString est que vous pouvez appliquer plusieurs étendues, chacune sur différentes parties de la chaîne! Comme vous l'avez remarqué, j'ai appliqué le caractère gras uniquement sur une partie de la chaîne (vous spécifiez les index de début et de fin), et cela devrait ressembler à ceci:
non oui!
Dans la méthode setSpan, vous spécifiez le SPAN à appliquer, l'index de départ, l'index de fin et les indicateurs (j'utilise toujours 0), dans cet ordre spécifique.
Vous pouvez même appliquer d'autres étendues, comme changer la taille du texte (utilisez RelativeSizeSpan ), ou même colorer (utilisez ForegroundColorSpan ), et bien plus encore!
Voici un exemple de plage de couleurs que vous pouvez réaliser de la manière suivante:
text.setSpan ( new ForegroundColorSpan ( Color.RED) , 0 , notBold .length () , 0 );
Et maintenant, la première partie de la chaîne (contenant le mot no) sera affichée en rouge!
Si TextView ne passe pas en gras lorsque vous exécutez votre application sur un appareil mobile, vous devez avoir utilisé la calligraphie dans votre activité. Donc, pour changer le style en gras, tout ce que vous avez à faire est d’écrire le code suivant dans votre fichier Java.
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
Bonne chance
La taille de police définie dans le fichier de dimensions n'a peut-être pas été sélectionnée lors de l'exécution. Je suppose que vous n'exécutez pas l'application dans l'émulateur.
Vérifiez les éléments suivants pour vous assurer qu'il ne s'agit pas d'un périphérique.
Il doit y avoir une version en gras/italique/souligné (c'est-à-dire cible) de la police. Le système ne le crée pas comme par magie pour vous.
Assurez-vous ainsi que la variante cible de votre police est incluse.
Essayez d'utiliser des balises HTML dans votre fichier strings.xml. Voici comment vous pouvez le faire, Android string.xml lisant le problème des balises html
Pour le faire par programme,
TextView t = new TextView(mContext);
t.setText(Html.fromHtml("<b>This is bold</b>"));
J'ai rencontré un problème similaire avec le caractère échappé <
. Vous devez utiliser <
à la place. Par exemple:
<string name="greetings"><b>From Russia with love</b></string>
C'est écrit sur le site officiel .
Créez un thème personnalisé pour ou tous les modèles de périphériques . Et définissez-le dans votre textview.
Je pense que le problème est que le texte sera très lent afin que vous puissiez obtenir un effet.
Si vous avez testé ce problème, changez la taille de la police jusqu'à 40 ps et exécutez Qu'est-ce qui se passe?
Pourriez-vous s'il vous plaît publier tous vos codes Java et XML pour que nous puissions recueillir plus d'informations sur votre problème?
Il est possible que le problème ne se trouve pas dans le TextView que vous nous montrez, mais jusqu’à présent, la
Android:textStyle="bold"
semble fonctionner sur votre mise en page graphique.