ttf studio name font family change xml android fonts

xml - studio - font android 8



Establecer fuente especĂ­fica en un styles.xml (7)

Creé un pequeño tutorial sobre esto ... Espero que pueda ser útil http://spinettaro.blogspot.it/2013/01/custom-font-for-view.html

Estoy definiendo un estilo XML para mi aplicación de Android. Tengo algunos archivos TTF que quiero usar, ¿cómo puedo configurar el tipo de letra para usar esos archivos como fuente en lugar de los genéricos "sans", "serif" y "monospace"? Gracias


Sí tu puedes :)

paso 1: crea una carpeta y denomínala ''fuente'' y tu .ttf dentro de ella.

paso 2: ve a style.xml y haz lo siguiente: -

Paso 3: usa la etiqueta de estilo en cualquier objeto de UI:


Solo puede usar fuentes personalizadas a través del código Java, no a través de diseño XML o estilos / temas, ¡lo siento!


Vea el Ejemplo de APIDemos en la Documentación.


Cree un directorio de fuentes en la carpeta de recursos y pegue su archivo de fuentes ttf. Luego crea un recurso fuente XML y pega las siguientes líneas.

<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:android="http://schemas.android.com/apk/res/android"> <font android:fontStyle="normal" android:fontWeight="400" android:font="@font/roboto_light" /> <font android:fontStyle="italic" android:fontWeight="400" android:font="@font/roboto_light_italic" /> </font-family>

Ahora puede aplicar la fuente de la siguiente manera. También tenga en cuenta el atributo ''textStyle''

<TextView android:textStyle="italic" android:fontFamily="@font/family_roboto_light" android:textColor="@color/primaryTextColor" android:textSize="20sp" android:gravity="center" android:id="@+id/textView36" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="No Internet connection" /> <TextView android:fontFamily="@font/family_roboto_light" android:textStyle="normal" android:textSize="20sp" android:gravity="center" android:id="@+id/textView37" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="No Internet connection" />

Si quieres hacerlo desde el código, sigue el siguiente nivel de API 26.

Typeface typeface = getResources().getFont(R.font. roboto_light_italic); textView.setTypeface(typeface);

La biblioteca de soporte 26.0 proporciona soporte para la función Fuentes en XML en dispositivos que ejecutan Android 4.1 (nivel de API 16) y superior.

Typeface typeface = ResourcesCompat.getFont(context, R.font. roboto_light_italic);


TextViewPlus.java:

package com.example; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Typeface; import android.util.AttributeSet; import android.util.Log; import android.widget.TextView; public class TextViewPlus extends TextView { private static final String TAG = "TextView"; public TextViewPlus(Context context) { super(context); } public TextViewPlus(Context context, AttributeSet attrs) { super(context, attrs); setCustomFont(context, attrs); } public TextViewPlus(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setCustomFont(context, attrs); } private void setCustomFont(Context ctx, AttributeSet attrs) { TypedArray a = ctx.obtainStyledAttributes(attrs, R.styleable.TextViewPlus); String customFont = a.getString(R.styleable.TextViewPlus_customFont); setCustomFont(ctx, customFont); a.recycle(); } public boolean setCustomFont(Context ctx, String asset) { Typeface tf = null; try { tf = Typeface.createFromAsset(ctx.getAssets(), asset); } catch (Exception e) { Log.e(TAG, "Could not get typeface: "+e.getMessage()); return false; } setTypeface(tf); return true; } }

attrs.xml: (en res / valores)

<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="TextViewPlus"> <attr name="customFont" format="string"/> </declare-styleable> </resources>

main.xml:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:foo="http://schemas.android.com/apk/res/com.example" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <com.example.TextViewPlus android:id="@+id/textViewPlus1" android:layout_height="match_parent" android:layout_width="match_parent" android:text="@string/showingOffTheNewTypeface" foo:customFont="saxmono.ttf"> </com.example.TextViewPlus> </LinearLayout>

Deberías poner "saxmono.ttf" en la carpeta de activos .


<?xml version="1.0" encoding="utf-8"?> <resources> <style name="CodeFont" parent="@android:style/TextAppearance.Medium"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:textColor">#00FF00</item> <item name="android:typeface">monospace</item> </style> </resources>