A partir de Android-Studio 3.0, es muy fácil cambiar la familia de fuentes
Usando la biblioteca de soporte 26, funcionará en dispositivos con Android API versión 16 y superior
Cree una carpeta font
en el res
directorio. Descargue la fuente que desee y péguela dentro de la font
carpeta. La estructura debería ser algo como a continuación
Nota: A partir de Android Support Library 26.0, debe declarar ambos conjuntos de atributos (android: y app:) para asegurarse de que sus fuentes se carguen en dispositivos que ejecutan Api 26 o versiones inferiores.
Ahora puede cambiar la fuente en el diseño usando
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/dancing_script"
app:fontFamily="@font/dancing_script"/>
Para cambiar progresivamente
Typeface typeface = getResources().getFont(R.font.myfont);
//or to support all versions use
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);
textView.setTypeface(typeface);
Para cambiar la fuente usando styles.xml cree un estilo
<style name="Regular">
<item name="android:fontFamily">@font/dancing_script</item>
<item name="fontFamily">@font/dancing_script</item>
<item name="android:textStyle">normal</item>
</style>
y aplicar este estilo a TextView
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Regular"/>
también puedes crear tu propia familia de fuentes
- Haga clic con el botón derecho en la carpeta de fuentes y vaya a Nuevo> Archivo de recursos de fuentes . Aparece la ventana Nuevo archivo de recursos.
- Ingrese el nombre del archivo y luego haga clic en Aceptar . El nuevo recurso XML de fuente se abre en el editor.
Escriba su propia familia de fuentes aquí, por ejemplo
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/lobster_regular" />
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/lobster_italic" />
</font-family>
esto es simplemente un mapeo de un fontStyle y fontWeight específico al recurso de fuente que se usará para representar esa variante específica. Los valores válidos para fontStyle son normales o cursiva; y fontWeight se ajusta a la especificación de peso de fuente CSS
1. Para cambiar la familia de fuentes en el diseño , puede escribir
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/lobster"/>
2. Para cambiar programáticamente
Typeface typeface = getResources().getFont(R.font.lobster);
//or to support all versions use
Typeface typeface = ResourcesCompat.getFont(context, R.font.lobster);
textView.setTypeface(typeface);
Para cambiar la fuente de toda la aplicación Agregue estas dos líneas en AppTheme
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:fontFamily">@font/your_font</item>
<item name="fontFamily">@font/your_font</item>
</style>
Consulte la documentación , tutorial de fuentes personalizadas de Android para obtener más información