Fitur Font yang Dapat Didownload memungkinkan API meminta font dari aplikasi penyedia, bukan
memaketkan file ke dalam aplikasi atau mengizinkan aplikasi mendownload font. Font yang Dapat Didownload tersedia di
perangkat yang menjalankan Android API versi 14 dan yang lebih tinggi melalui library AndroidX Core.
Font yang Dapat Didownload menawarkan manfaat berikut:
Mengurangi ukuran aplikasi, sehingga meningkatkan rasio keberhasilan penginstalan aplikasi.
Meningkatkan kesehatan sistem secara keseluruhan, karena beberapa aplikasi dapat berbagi font yang sama melalui
penyedia. Hal ini menghemat data seluler, memori ponsel, dan kapasitas disk pengguna. Dalam model ini, font diambil melalui jaringan saat diperlukan.
Untuk pengalaman langsung dengan Font yang Dapat Didownload, lihat
aplikasi contoh
DownloadableFonts.
Bagaimana cara kerja Font yang Dapat Didownload?
Penyedia font adalah aplikasi yang mengambil font dan meng-cache-nya secara lokal sehingga aplikasi lain dapat
meminta dan membagikan font. Gambar berikut mengilustrasikan prosesnya.
Gambar 1. Proses Font yang Dapat Didownload.
Dasar-dasar
Anda dapat menggunakan fitur Font yang Dapat Didownload dengan cara berikut, yang dibahas secara mendetail'
di bagian selanjutnya:
Menggunakan Font yang Dapat Didownload dengan Android Studio dan layanan Google Play
Anda dapat menyetel aplikasi Anda untuk mendownload font dengan menggunakan Android Studio 3.0 atau yang lebih tinggi. Untuk membantu Anda
mulai menggunakan fitur Font yang Dapat Didownload, Anda dapat menggunakan penyedia font dari layanan
Google Play.
Di Layout Editor, pilih TextView. Kemudian, di bagian Attributes,
pilih fontFamily > More Fonts.
Gambar 2. Menggunakan Layout Editor.
Jendela Resources akan muncul.
Di menu Source, pilih Google Fonts.
Di kotak Font, pilih font di bagian "Dapat didownload".
Pilih Create downloadable font, lalu klik OK.
Gambar 3. Memilih font dari jendela Resources.
Android Studio otomatis membuat file XML relevan yang diperlukan untuk merender font
dengan benar di aplikasi Anda.
Gambar 4. Melihat pratinjau file font.
Menggunakan Font yang Dapat Didownload secara terprogram
Mulai Android 8.0 (level API 26), AndroidX Core memberikan dukungan penuh untuk Font yang Dapat Didownload. Untuk
informasi selengkapnya tentang penggunaan library AndroidX Core, lihat
bagian library AndroidX Core Downloadable Fonts di halaman ini.
Untuk menggunakan fitur Font yang Dapat Didownload secara terprogram, berinteraksilah dengan dua class utama:
Aplikasi Anda mengambil font dari penyedia font menggunakan FontsContract API. Setiap
penyedia memiliki serangkaian batasannya sendiri terkait versi Android dan bahasa kueri yang didukungnya. Untuk
mengetahui informasi selengkapnya tentang versi Android dan format kueri, lihat dokumentasi
penyedia Anda.
Untuk mendownload font, selesaikan langkah-langkah berikut:
Buat instance class android.graphics.fonts.FontRequest untuk meminta
font dari penyedia. Untuk membuat permintaan, teruskan parameter berikut:
Otoritas penyedia font.
Paket penyedia font untuk memverifikasi identitas penyedia.
Kueri string font. Untuk informasi selengkapnya tentang format kueri, lihat dokumentasi penyedia font Anda, seperti Google Fonts.
Daftar serangkaian hash untuk sertifikat guna memverifikasi identitas penyedia.
Ganti metode
onTypefaceRetrieved()
untuk menunjukkan bahwa permintaan font telah selesai. Berikan font yang diambil sebagai parameter.
Anda dapat menggunakan metode ini untuk menetapkan font sesuai kebutuhan. Misalnya, Anda dapat menetapkan font pada
TextView.
Ganti metode
onTypefaceRequestFailed()
untuk menerima informasi tentang error dalam proses permintaan font. Untuk mengetahui informasi selengkapnya
tentang kode error, lihat
konstanta kode error.
Panggil metode FontsContract.requestFont() untuk mengambil font dari penyedia
font. Metode ini memulai pemeriksaan untuk menentukan apakah font ada di cache. Jika
font tidak tersedia secara lokal, class ini akan memanggil penyedia font, mengambil font
secara asinkron, dan meneruskan hasilnya ke callback. Teruskan parameter berikut:
Kode contoh berikut mengilustrasikan keseluruhan proses Font yang Dapat Didownload:
Kotlin
valrequest=FontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs)valcallback=object:FontsContract.FontRequestCallback(){overridefunonTypefaceRetrieved(typeface:Typeface){// Your code to use the font goes here....}overridefunonTypefaceRequestFailed(reason:Int){// Your code to deal with the failure goes here....}}FontsContract.requestFonts(context,request,handler,null,callback)
Java
FontRequestrequest=newFontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs);FontsContract.FontRequestCallbackcallback=newFontsContract.FontRequestCallback(){@OverridepublicvoidonTypefaceRetrieved(Typefacetypeface){// Your code to use the font goes here....}@OverridepublicvoidonTypefaceRequestFailed(intreason){// Your code to deal with the failure goes here....}};FontsContract.requestFonts(context,request,handler,null,callback);
Untuk informasi selengkapnya tentang cara mendownload font dari penyedia font, lihat aplikasi contoh
DownloadableFonts.
Menggunakan Font yang Dapat Didownload dengan AndroidX Core
AndroidX Core menyediakan dukungan untuk fitur Font yang Dapat Didownload di perangkat yang menjalankan Android
API versi 14 atau yang lebih tinggi. Paket
androidx.core.provider
berisi class FontsContractCompat dan FontRequest untuk mengimplementasikan
dukungan fitur Font yang Dapat Didownload yang kompatibel dengan versi lama. Class AndroidX berisi metode
yang mirip dengan metode framework, dan proses untuk mendownload font mirip dengan yang
dijelaskan di bagian halaman ini tentang
menggunakan Font yang Dapat Didownload secara terprogram.
Untuk mendownload font menggunakan AndroidX, impor class FontsContractCompat dan
FontRequest dari paket androidx.core.provider. Buat
instance class ini, bukan
class framework FontsContract dan
android.graphics.fonts.FontRequest.
Menambahkan dependensi AndroidX Core
Untuk menggunakan class FontsContractCompat dan FontRequest, Anda harus mengubah
dependensi classpath project aplikasi dalam lingkungan pengembangan.
Untuk menambahkan AndroidX Core ke project aplikasi Anda, tambahkan dependensi berikut ke file
build.gradle aplikasi Anda:
Menggunakan Font yang Dapat Didownload sebagai resource dalam XML
Android 8.0 (level API 26) dan AndroidX Core menawarkan cara yang lebih cepat dan praktis untuk mendeklarasikan font kustom sebagai resource dalam tata letak XML. Artinya, Anda tidak perlu memaketkan font sebagai
aset. Anda dapat menentukan font kustom untuk seluruh tema, yang mempercepat kegunaan untuk
beberapa ketebalan dan gaya, seperti tebal, sedang, atau tipis, jika disediakan.
Buat file XML baru di folder res/font.
Tambahkan elemen root <font-family> dan tetapkan atribut terkait font, seperti
yang ditunjukkan dalam contoh file XML berikut:
Lihat file sebagai @font/font_file_name dalam file XML tata letak. Anda juga dapat
menggunakan
metode
getFont()
untuk mengambil file secara terprogram, seperti
getFont(R.font.font_file_name).
Mendeklarasikan font sebelumnya di dalam manifes
Perluasan tata letak dan pengambilan resource adalah tugas tersinkron. Secara default, upaya pertama untuk
mengambil font akan memicu permintaan ke penyedia font, sehingga meningkatkan waktu tata letak
pertama. Untuk menghindari penundaan, Anda dapat mendeklarasikan font yang perlu diambil dalam manifes Anda.
Setelah sistem mengambil font dari penyedia, font tersebut akan langsung tersedia. Jika pengambilan font
memerlukan waktu lebih lama dari yang diperkirakan, sistem akan membatalkan proses pengambilan dan menggunakan font
default.
Untuk mendeklarasikan font sebelumnya di dalam manifes, selesaikan langkah-langkah berikut:
Buat array resource di res/values/arrays.xml dan deklarasikan font yang ingin
Anda ambil di awal.
Jika penyedia font tidak diinstal sebelumnya, atau jika Anda menggunakan library AndroidX Core, deklarasikan
sertifikat yang digunakan untuk menandatangani penyedia font. Sistem menggunakan sertifikat untuk memverifikasi
identitas penyedia font.
Lakukan langkah-langkah berikut untuk menambahkan sertifikat:
Buat array string dengan detail sertifikat. Untuk mengetahui informasi selengkapnya tentang detail
sertifikat, lihat dokumentasi penyedia font Anda.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2026-10-17 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2026-10-17 UTC."],[],[]]