Android – Configuración de TextView a negrita no funciona

Aquí está el 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> 

Aunque el diseño gráfico muestra texto en negrita, en el dispositivo no lo es. ¿Es una cosa de dispositivo o qué?

Actualizar:

Para las personas que siguen pidiendo el XML completo, aquí se actualiza. Un diseño relativo simple. Y aquí está el código Java:

 this.titleTextView.setText(this.modalListState.title); 

Cosas a tener en cuenta: ¿Podría ser debido a los tipos de dispositivo? ¿Alguien tiene Galaxy S3 para confirmar? ¿Podría ser el estilo de actividad? Aquí está el que se utiliza para toda la aplicación:

 <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> 

El estilo TransparentActivity se utiliza para la actividad en cuestión.

Bueno, encontré una respuesta tonta a este problema. Yo estaba usando una fuente personalizada en el dispositivo, no el predeterminado. Una vez que cambié a la predeterminada, todas las cosas funcionaron como se esperaba!

Hay un método, usted puede fijar la fuente de tipo textview llamando método de setTypeface …

  textView.setTypeface(null, Typeface.BOLD_ITALIC); textView.setTypeface(null, Typeface.BOLD); textView.setTypeface(null, Typeface.ITALIC); 

Y también refieren este enlace …

Establecer el estilo TextView (en negrita o en cursiva)

Es posible que el tamaño de fuente definido en el archivo de dimensiones no se haya captado durante la ejecución. Supongo que no está ejecutando la aplicación en el emulador.

Compruebe lo siguiente para asegurarse de que no es cosa de dispositivo.

  • Asegúrese de que el tamaño de fuente esté correctamente definido para el archivo de cotas adecuado para las métricas del dispositivo de destino
  • Algunos dispositivos permiten cambiar el tamaño de texto predeterminado. Compruebe el tamaño de texto predeterminado en "Configuración" en el dispositivo.
  • Cualquier estilo o tema aplicado en el archivo de manifiesto para la actividad en la que se muestra el diseño. Intente eliminar el estilo / tema por un tiempo.
  • Intente codificar duro el tamaño de la fuente a número par por ejemplo 24sp
  • Compruebe la propiedad scale de cualquiera de las vistas / diseños principales.
  • Ningún código está intentando cambiar el estilo de fuente durante el tiempo de ejecución.

La mayoría de las respuestas son correctas.

También puede utilizar la llamada: SpannableString

Puedes usarlo de esta manera:

 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 ); 

Lo que es bueno acerca de la SpannableString es que se puede aplicar espacios mutliple , cada uno en diferentes partes de la cadena! Como usted notó, apliqué la cara en negrita sólo en una parte de la cadena (que especifica los índices de inicio y final), y debería tener el siguiente aspecto:

No si

En el método setSpan , especifique el SPAN a aplicar, el índice inicial, el índice final y los indicadores (siempre utilizo 0), en ese orden específico.

Incluso puede aplicar otros tramos, como cambiar el tamaño del texto (use RelativeSizeSpan ), o incluso el color (use ForegroundColorSpan ), y mucho más!

Aquí hay un ejemplo para el intervalo de color, que se puede lograr de la siguiente manera:

 text.setSpan ( new ForegroundColorSpan ( Color.RED) , 0 , notBold .length () , 0 ); 

Y ahora, la primera parte de la cadena (que contiene la palabra no ) se mostrará en rojo!

Trate de usar etiquetas HTML En el archivo strings.xml. Esto es lo que puede hacer, android string.xml lectura html etiquetas problema

Para hacerlo programáticamente,

 TextView t = new TextView(mContext); t.setText(Html.fromHtml("<b>This is bold</b>")); 

¿Podría publicar todos sus códigos java y xml para obtener más información sobre su problema?

Es posible que el problema no esté en el TextView que nos está mostrando pero hasta ahora el

 android:textStyle="bold" 

Parece funcionar en su diseño gráfico.

Cree un tema personalizado para o todo el diseño del dispositivo. Y establecer en su texto .

Creo que el problema es el texto será muy lento para que pueda obtener cualquier efecto.

Si tiene este problema de prueba a continuación, cambiar el tamaño de fuente hasta 40sp y ejecutar lo que suceda?

Debe haber una versión negrita / cursiva / subrayada (es decir, objetivo) de la fuente. El sistema no lo crea mágicamente para usted.

Asegúrese de que se incluye la variante de destino de su fuente.

Me enfrenté a un problema similar con el carácter escapado < . Tienes que usar &lt; en lugar. Por ejemplo:

 <string name="greetings">&lt;b>From Russia with love&lt;/b></string> 

Está escrito en el sitio oficial .

  • Android: ClickableSpan en TextView seleccionable
  • Android: ¿Cómo usar el Html.TagHandler?
  • TextView con color de fondo sólo en el propio texto
  • Última palabra mostrada en una vista de texto
  • Cómo establecer el texto de subrayado en textview?
  • ¿Cómo se utiliza EasyEditSpan en Android para permitir la edición parcial de texto?
  • Convertir píxeles en sp
  • Evitar que TextView se envuelva en el elemento principal
  • Enfocar el siguiente texto automáticamente
  • Actualizar dinámicamente TextView en Android
  • Android TextView no actualiza su texto cuando textIsSelectable está establecido en true
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.