2011-01-25 20 views
317

¿Cómo se cambia configuración de texto/fuente en un dispositivo Android TextView? Por ejemplo, ¿cómo hace que el texto sea negrita?¿Cómo se cambia el texto a negrita en Android?

+0

Compruebe mi [respuesta aquí] (http://stackoverflow.com/a/40802895/1252158). Espero que esto te ayude –

Respuesta

428

Para hacer esto en el archivo layout.xml:

android:textStyle 

Ejemplos:

android:textStyle="bold|italic" 

programación el método es:

setTypeface(Typeface tf) 

Establece el tipo de letra y el estilo en el que el texto debe se mostrará. Tenga en cuenta que no todas las familias Typeface en realidad tienen variantes en negrita y cursiva, por lo que puede necesitar usar setTypeface(Typeface, int) para obtener la apariencia que realmente desea.

310

Aquí está la solución

TextView questionValue = (TextView) findViewById(R.layout.TextView01); 
questionValue.setTypeface(null, Typeface.BOLD); 
21

Establecer el atributo

android:textStyle="bold" 
15

Si va a dibujar entonces esto va a hacerlo:

TextPaint.setFlags(Paint.FAKE_BOLD_TEXT_FLAG); 
14

Es muy fácil

setTypeface(Typeface.DEFAULT_BOLD); 
14

Para el caso en el que utilice fuentes personalizadas, pero no tiene letra negrita de la fuente que puede utilizar:

myTextView.setText(Html.fromHtml("<b>" + myText + "</b>"); 
8

definir un nuevo estilo con el formato que desee en el archivo en la carpeta style.xml valores

<style name="TextViewStyle" parent="AppBaseTheme"> 
    <item name="android:textStyle">bold</item> 
    <item name="android:typeface">monospace</item> 
    <item name="android:textSize">16sp</item> 
    <item name="android:textColor">#5EADED</item> 

</style> 

a continuación, aplicar este estilo a la Vista de Texto escribiendo el siguiente código con las propiedades de la Vista de Texto

style="@style/TextViewStyle" 
47

En XML

android:textStyle="bold" //only bold 
android:textStyle="italic" //only italic 
android:textStyle="bold|italic" //bold & italic 

Sólo se pueden utilizar fuentes específicas sans, serif & monospace a través de XML, Java code puede usar fuentes personalizadas

android:typeface="monospace" // or sans or serif 

programación (código Java)

TextView textView = (TextView) findViewById(R.id.TextView1); 

textView.setTypeface(Typeface.SANS_SERIF); //only font style 
textView.setTypeface(null,Typeface.BOLD); //only text style(only bold) 
textView.setTypeface(null,Typeface.BOLD_ITALIC); //only text style(bold & italic) 
textView.setTypeface(Typeface.SANS_SERIF,Typeface.BOLD); 
             //font style & text style(only bold) 
textView.setTypeface(Typeface.SANS_SERIF,Typeface.BOLD_ITALIC); 
             //font style & text style(bold & italic) 
13

En el mundo ideal que establecería el atributo de estilo de texto en su definición XML de diseño así:

<TextView 
    android:id="@+id/TextView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textStyle="bold"/> 

No es una forma sencilla de conseguir el mismo resultado de forma dinámica en el código mediante el uso de setTypeface método.Debe pasar y objetar a la clase Tipo de letra, que describirá el estilo de fuente para esa Vista de texto. Así que para lograr el mismo resultado que con la definición XML anterior se puede hacer lo siguiente:

TextView Tv = (TextView) findViewById(R.id.TextView); 
Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD); 
Tv.setTypeface(boldTypeface); 

La primera línea va a crear el estilo predefinido forma de objeto (en este caso Typeface.BOLD, pero hay muchos más predefinido). Una vez que tenemos una instancia de tipografía, podemos configurarlo en TextView. Y eso es todo, nuestro contenido se mostrará en el estilo que definimos.

Espero que le ayuda a una mejor lot.For información se puede visitar

http://developer.android.com/reference/android/graphics/Typeface.html

3

Se puede utilizar esta fuente de

crear un nombre TypefaceTextView clase y extender el TextView

private static Map mTypefaces;

public TypefaceTextView(final Context context) { 
    this(context, null); 
} 

public TypefaceTextView(final Context context, final AttributeSet attrs) { 
    this(context, attrs, 0); 
} 

public TypefaceTextView(final Context context, final AttributeSet attrs, final int defStyle) { 
    super(context, attrs, defStyle); 
    if (mTypefaces == null) { 
     mTypefaces = new HashMap<String, Typeface>(); 
    } 

    if (this.isInEditMode()) { 
     return; 
    } 

    final TypedArray array = context.obtainStyledAttributes(attrs, styleable.TypefaceTextView); 
    if (array != null) { 
     final String typefaceAssetPath = array.getString(
       R.styleable.TypefaceTextView_customTypeface); 

     if (typefaceAssetPath != null) { 
      Typeface typeface = null; 

      if (mTypefaces.containsKey(typefaceAssetPath)) { 
       typeface = mTypefaces.get(typefaceAssetPath); 
      } else { 
       AssetManager assets = context.getAssets(); 
       typeface = Typeface.createFromAsset(assets, typefaceAssetPath); 
       mTypefaces.put(typefaceAssetPath, typeface); 
      } 

      setTypeface(typeface); 
     } 
     array.recycle(); 
    } 
} 

pegar la fuente en la carpeta de fuentes crea en la carpeta de activos

<packagename.TypefaceTextView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1.5" 
     android:gravity="center" 
     android:text="TRENDING TURFS" 
     android:textColor="#000" 
     android:textSize="20sp" 
     app:customTypeface="fonts/pompiere.ttf" />**here pompiere.ttf is the font name** 

Colocar las líneas en la disposición de los padres en el xml

xmlns:app="http://schemas.android.com/apk/res/com.mediasters.wheresmyturf" 
xmlns:custom="http://schemas.android.com/apk/res-auto" 
52

Simplemente se puede hacer lo siguiente:

Establezca el atributo en XML

android:textStyle="bold" 

Programatically el método es:

TextView Tv = (TextView) findViewById(R.id.TextView); 

Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD); 

Tv.setTypeface(boldTypeface); 

Hope esto le ayuda gracias.

+0

Déjame saber el resultado – saeed

+0

@texas Gracias – saeed

3

El mejor camino a seguir es:

TextView tv = findViewById(R.id.textView); 
tv.setTypeface(Typeface.DEFAULT_BOLD); 
2

Suponiendo que usted es un nuevo motor de arranque en Android Studio, Simplemente se puede lograr que se haga en la vista de diseño XML utilizando

android:textStyle="bold"   //to make text bold 
android:textStyle="italic"  //to make text italic 
android:textStyle="bold|italic" //to make text bold & italic 
0
editText.setTypeface(Typeface.createFromAsset(getAssets(), ttfFilePath)); 
etitText.setTypeface(et.getTypeface(), Typeface.BOLD); 

establecerá tanto la tipfa como el estilo en negrita.

+1

Debes incluir una breve explicación de tu respuesta para describir mejor su caso de uso y su implementación. –

+0

Esto no agrega nada nuevo a las respuestas existentes. – nvoigt

Cuestiones relacionadas