Skip to content

Instantly share code, notes, and snippets.

changeFontButton.setOnClickListener {
FontsContractCompat.requestFont(applicationContext, createFontRequest(fonts[nextFontIndex]), callback, Handler())
}
val callback = object : FontsContractCompat.FontRequestCallback() {
override fun onTypefaceRetrieved(typeface: Typeface?) {
textCode.typeface = typeface
}
override fun onTypefaceRequestFailed(reason: Int) {
Log.i("MainActivity", "onTypefaceRequestFailed with code: " + reason)
}
}
fun createFontRequest(fontName: String) = FontRequest(
"com.google.android.gms.fonts",
"com.google.android.gms",
fontName,
R.array.com_google_android_gms_fonts_certs)
val fonts = listOf("Abril Fatface", "Acme", "Aguafina Script", "Aldrich",
"Almendra SC", "Architects Daughter", "Arizonia", "Audiowide", "Baloo")
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<!-- rest of content -->
</application>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="fontFamily">@font/abril_fatface</item>
</style>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="fontFamily">@font/abril_fatface</item>
</style>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="fontFamily">@font/abril_fatface</item>
</style>
<TextView
android:id="@+id/textXML"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/abril_fatface"
android:text="This font was set via XML"
android:textSize="30sp" />
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:orientation="vertical">
<TextView
android:id="@+id/textXML"
android:layout_width="match_parent"