İndirilebilir Yazı Tipleri özelliği, API'lerin dosyaları uygulamada gruplandırmak veya uygulamanın yazı tiplerini indirmesine izin vermek. İndirilebilir yazı tipleri şurada mevcuttur: Android API 14 ve sonraki sürümleri çalıştıran cihazlar (AndroidX Core kitaplığı üzerinden)
İndirilebilir Yazı Tipleri şu avantajları sunar:
- Uygulama boyutunu küçülterek uygulamanın yükleme başarı oranını artırır.
- Birden çok uygulama aynı yazı tipini bir tarayıcıyla paylaşabileceğinden, genel sistem sağlığını iyileştirir. sağlar. Bu, kullanıcıların hücresel veri kullanımından, telefon belleğinden ve disk alanından tasarruf etmesini sağlar. Bu modelde yazı tipi gerektiğinde ağ üzerinden getirilir.
İndirilebilir Yazı Tipleri nasıl çalışır?
Yazı tipi sağlayıcısı, diğer uygulamaların yazı tipini alıp yerel olarak önbelleğe almasını sağlayan bir uygulamadır. yazı tiplerini sunabilir. Aşağıdaki şekilde bu işlem gösterilmektedir.
![Emoji karşılaştırma işlemindeki ana bileşenleri gösteren resimler](https://developer.android.com/static/guide/topics/ui/images/look-and-feel/downloadable-fonts/downloadable-fonts-process.png?authuser=0&hl=tr)
Temel bilgiler
İndirilebilir yazı tipleri özelliğini şu şekillerde kullanabilirsiniz: sonraki bölümlerde:
- Android Studio'yu ve Google Play Hizmetleri'ni kullanma
- Programatik olarak
- AndroidX Core kitaplığını kullanma
Android Studio ve Google Play Hizmetleri'nde İndirilebilir Yazı Tiplerini kullanma
Android Studio 3.0 veya sonraki bir sürümü kullanarak uygulamanızı yazı tipleri indirecek şekilde ayarlayabilirsiniz. Size yardımcı olmak için İndirilebilir Yazı Tipleri özelliklerini kullanmaya başlamak için Google Play'in yazı tipi sağlayıcısını kullanabilirsiniz. kullanıma sunuyoruz.
- Düzen Düzenleyici'de bir
TextView
seçin. Ardından, Özellikler'in altında fontFamily > Diğer Yazı Tipleri'ni tıklayın.Şekil 2. Düzen Düzenleyici'yi kullanma. ziyaret edin. - Kaynak menüsünde Google Fonts'u seçin.
- Yazı tipleri kutusunda, "İndirilebilir" bölümünün altında bir yazı tipi seçin. alanı.
- İndirilebilir yazı tipi oluştur'u seçip Tamam'ı tıklayın.
Şekil 3. Kaynaklar penceresinden bir yazı tipi seçin.
Android Studio, yazı tipini oluşturmak için gereken ilgili XML dosyalarını otomatik olarak oluşturur doğru şekilde ekleyebilirsiniz.
![Yazı tiplerinin nasıl önizleneceğini gösteren resim](https://developer.android.com/static/guide/topics/ui/images/look-and-feel/downloadable-fonts/preview-fonts.png?authuser=0&hl=tr)
İndirilebilir yazı tiplerini programatik olarak kullanma
AndroidX Core, Android 8.0 (API düzeyi 26) sürümünden itibaren İndirilebilir Yazı Tipleri için tam destek sağlamaktadır. Örneğin, AndroidX Core kitaplığını kullanmayla ilgili daha fazla bilgiyi şurada bulabilirsiniz: Bu sayfadaki İndirilebilir Fonts AndroidX Core kitaplığı bölümü
İndirilebilir Yazı Tipleri özelliğini programatik olarak kullanmak için iki temel sınıfla etkileşimde bulunun:
android.graphics.fonts.FontRequest
: Bu sınıf, yazı tipi isteği oluşturmanızı sağlar.FontsContractCompat
: bu sınıf yeni birTypeface
nesnesinin temeli yazı tipi isteği.
Uygulamanız, FontsContract
API'yi kullanarak yazı tipi sağlayıcıdan yazı tiplerini alıyor. Her biri
Sağlayıcının, desteklediği Android sürümleri ve sorgu dili için kendi kısıtlamaları vardır. Örneğin,
hakkında daha fazla bilgi edinmek istiyorsanız sağlayıcınızın
belgelerinden faydalanabilirsiniz.
Bir yazı tipi indirmek için aşağıdaki adımları tamamlayın:
- Şu isteği göndermek için
android.graphics.fonts.FontRequest
sınıfının bir örneğini oluşturun: yazı tipini seçin. Bir istek oluşturmak için aşağıdaki parametreleri iletin:- Yazı tipi sağlayıcı yetkilisi.
- Sağlayıcının kimliğini doğrulamak için kullanılan yazı tipi sağlayıcı paketi.
- Yazı tipinin dize sorgusu. Sorgu biçimleri hakkında daha fazla bilgi için yazı tipinize bakın tedarikçinin belgeleri, Google Fonts.
- Sağlayıcının kimliğini doğrulamak için sertifikalara ait karma gruplarının listesi.
Kotlin
val request = FontRequest( "com.example.fontprovider.authority", "com.example.fontprovider", "my font", certs )
Java
FontRequest request = new FontRequest("com.example.fontprovider", "com.example.fontprovider", "my font", certs);
- Şunun bir örneğini oluşturun:
FontsContract.FontRequestCallback
. sınıfını kullanır. - Geçersiz kıl
onTypefaceRetrieved()
. yöntemini kullanın. Alınan yazı tipini parametre olarak sağlayın. Yazı tipini gerektiği gibi ayarlamak için bu yöntemi kullanabilirsiniz. Örneğin, bir arka plandaki yazı tipiniTextView
- Geçersiz kıl
onTypefaceRequestFailed()
. yöntemini kullanabilirsiniz. Okuyucu Gelirleri Yöneticisi'ni daha fazla bilgi için hata kodu sabitleridir. - Yazı tipinden yazı tipini almak için
FontsContract.requestFont()
yöntemini çağırın sağlar. Bu yöntem, yazı tipinin önbellekte mevcut olup olmadığını belirlemek için bir kontrol başlatır. Eğer yazı tipi yerel olarak kullanılamıyor, yazı tipi sağlayıcıyı çağırıyor, yazı tipini alıyor eşzamansız olarak yapar ve sonucu geri çağırmaya iletir. Aşağıdaki parametreleri iletin:- Bir
Context
sınıf android.graphics.fonts.FontRequest
sınıfının bir örneği- Yazı tipi isteğinin sonuçlarını almak için geri arama
- Bir ileti dizisindeki yazı tiplerini getirmek için kullanılan işleyici
- Bir
Aşağıdaki örnek kodda Genel İndirilebilir Yazı Tipleri süreci gösterilmektedir:
Kotlin
val request = FontRequest( "com.example.fontprovider.authority", "com.example.fontprovider", "my font", certs ) val callback = object : FontsContract.FontRequestCallback() { override fun onTypefaceRetrieved(typeface: Typeface) { // Your code to use the font goes here. ... } override fun onTypefaceRequestFailed(reason: Int) { // Your code to deal with the failure goes here. ... } } FontsContract.requestFonts(context, request, handler, null, callback)
Java
FontRequest request = new FontRequest("com.example.fontprovider.authority", "com.example.fontprovider", "my font", certs); FontsContract.FontRequestCallback callback = new FontsContract.FontRequestCallback() { @Override public void onTypefaceRetrieved(Typeface typeface) { // Your code to use the font goes here. ... } @Override public void onTypefaceRequestFailed(int reason) { // Your code to deal with the failure goes here. ... } }; FontsContract.requestFonts(context, request, handler, null, callback);
Bir yazı tipi sağlayıcısından bir yazı tipini nasıl indireceğiniz hakkında daha fazla bilgi için İndirilebilir yazı tipleri örnek uygulama.
AndroidX Core'da İndirilebilir Yazı Tiplerini Kullanma
AndroidX Core, Android çalıştıran cihazlarda İndirilebilir Yazı Tipleri özelliğini destekler.
API 14 veya sonraki sürümler. İlgili içeriği oluşturmak için kullanılan
androidx.core.provider
.
paket, uygulanacak FontsContractCompat
ve FontRequest
sınıf içeriyor
Geriye dönük uyumlu İndirilebilir Yazı Tipleri desteği hakkında daha fazla bilgi edinin. AndroidX sınıfları yöntemler içerir
ve yazı tipi indirme süreci, çerçeve yöntemlerine benzer.
ilgili konu başlıklı bölümde
İndirilebilir Yazı Tiplerini programatik olarak kullanma.
Yazı tiplerini AndroidX kullanarak indirmek için FontsContractCompat
ve
androidx.core.provider
paketinde FontRequest
sınıf. İçerik üretme
bu sınıfların örneklerini
FontsContract
ve
android.graphics.fonts.FontRequest
çerçeve sınıfı.
AndroidX Core bağımlılığı ekleyin
FontsContractCompat
ve FontRequest
sınıflarını kullanmak için değişiklik yapmanız gerekir
uygulama projenizin geliştirme ortamınızdaki sınıf yolu bağımlılıklarını
AndroidX Core'u uygulama projenize eklemek için aşağıdaki bağımlılığı uygulamanızın
build.gradle
dosyası:
Eski
dependencies { ... implementation "androidx.core:core-ktx:2.2.0" }
Kotlin
dependencies { ... implementation("androidx.core:core-ktx:2.2.0") }
İndirilebilir yazı tiplerini XML'de kaynak olarak kullanın
Android 8.0 (API düzeyi 26) ve AndroidX Core, APK'yı beyan etmenin daha hızlı ve daha kolay bir yolunu sunar. XML düzeninde kaynak olarak özel yazı tipini destekler. Bu, yazı tipini iki veya daha fazla bir öğedir. Temanızın tamamı için özel bir yazı tipi tanımlayabilir ve böylece temanızın kullanılabilirliğini hızlandırabilirsiniz birden fazla ağırlık ve stil (ör. kalın, orta veya açık) kullanabilirsiniz.
res/font
klasöründe yeni bir XML dosyası oluşturun.- Bir
<font-family>
kök öğesi ekleyin ve yazı tipiyle ilgili özellikleri aşağıdaki gibi ayarlayın: aşağıdaki örnek XML dosyasında gösterilmiştir: - Düzen XML dosyasında dosyaya
@font/font_file_name
olarak bakın. Ayrıca transkriptinizi her bir arama terimi içingetFont()
. yöntem olarak kullanabilirsiniz (örneğin,getFont(R.font.font_file_name)
.
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:android="http://schemas.android.com/apk/res/android" android:fontProviderAuthority="com.example.fontprovider.authority" android:fontProviderPackage="com.example.fontprovider" android:fontProviderQuery="example font" android:fontProviderCerts="@array/certs"> </font-family>
Manifest'teki yazı tiplerini önceden bildir
Düzen genişletme ve kaynak alma eşzamanlı görevlerdir. Varsayılan olarak, ilk denemede yazı tiplerini almak, yazı tipi sağlayıcıya yapılan bir isteği tetikler ve böylece ilk düzeni artırır gerekir. Gecikmeyi önlemek için manifestinizde alınması gereken yazı tiplerini önceden bildirebilirsiniz. Sistem, yazı tipini sağlayıcıdan aldıktan sonra hemen kullanılabilir. Yazı tipi ise alma işlemi beklenenden daha uzun sürerse sistem, getirme işlemini iptal eder ve varsayılan yazı tipi.
Manifest'teki yazı tiplerini önceden bildirmek için aşağıdaki adımları tamamlayın:
res/values/arrays.xml
içinde bir kaynak dizisi oluşturun ve önceden getirmek istiyorum.- Manifest'inizdeki kaynak dizisini bildirmek için bir
meta-data
etiketi kullanın.
res/values/arrays.xml <?xml version="1.0" encoding="utf-8"?> <resources> <array name="preloaded_fonts"> <item>@font/font1</item> <item>@font/font2</item> </array> </resources>
<meta-data android:name="preloaded_fonts" android:resource="@array/preloaded_fonts" />
Sertifika ekle
Bir yazı tipi sağlayıcı önceden yüklenmemişse veya AndroidX Core kitaplığını kullanıyorsanız şunu bildirin: yazı tipi sağlayıcısının imzalandığı sertifikaları gösterir. Sistem, alan adını doğrulamak için sertifikaları Yazı tipi sağlayıcısının kimliği.
Sertifika eklemek için aşağıdaki adımları uygulayın:
- Sertifika ayrıntılarıyla bir dize dizisi oluşturun. Sertifika hakkında daha fazla bilgi için yazı tipi sağlayıcınızın dokümanlarına bakın.
fontProviderCerts
özelliğini diziye ayarlayın.
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="certs"> <item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item> </string-array> </resources>
android:fontProviderCerts="@array/certs"
Compose'daki İndirilebilir Yazı Tipleri
Başlamak için kalan süre: 1.2-alpha07 oluşturun, Compose uygulamanızda Downloadable Fonts API'yi Google Fonts'u eşzamansız olarak kullanıp uygulamanızda kullanabilirsiniz. Örneğin, daha fazla bilgi için İndirilebilir Yazı Tipleri oluşturun.