Android 8.0 (API seviyesi 26), yazı tiplerini kaynak olarak kullanmanıza olanak tanıyan bir özellik olan XML'de yazı tiplerini kullanıma sunar. Yazı tiplerini kaynak olarak paketlemek için font dosyasını res/font/ klasörüne ekleyebilirsiniz. Bu yazı tipleri R dosyanızda derlenir ve Android Studio'da otomatik olarak kullanılabilir. font kaynak türünü kullanarak yazı tipi kaynaklarına erişebilirsiniz. Örneğin, bir yazı tipi kaynağına erişmek için @font/myfont veya R.font.myfont kullanın.
Android 4.1 (API düzeyi 16) ve sonraki sürümleri çalıştıran cihazlarda XML'deki yazı tiplerini kullanmak için Destek Kitaplığı 26.0'ı kullanın. Destek kitaplığını kullanma hakkında daha fazla bilgi için Destek kitaplığını kullanma bölümüne bakın.
Yazı tiplerini kaynak olarak eklemek için Android Studio'da aşağıdaki adımları uygulayın:
- res klasörünü sağ tıklayın ve Yeni > Android kaynak dizini'ne gidin. Yeni Kaynak Dizini penceresi açılır.
- Kaynak türü listesinde font'u seçin ve Tamam'ı tıklayın.
Not: Kaynak dizininin adı font olmalıdır.
Şekil 1. Yazı tipi kaynak dizinini ekleme.
- Yazı tipi dosyalarınızı
fontklasörüne ekleyin.Aşağıdaki klasör yapısı
R.font.dancing_script,R.font.lobsterveR.font.typo_graphicaöğelerini oluşturur.
Şekil 2. Yazı tipi dosyalarını
res/fontdizinine ekleme - Dosyanın yazı tiplerini düzenleyicide önizlemek için bir yazı tipi dosyasını çift tıklayın.
Şekil 3. Yazı tipi dosyasını önizleme
Yazı tipi ailesi oluşturma
Yazı tipi ailesi, stil ve ağırlık ayrıntılarıyla birlikte bir dizi yazı tipi dosyasıdır. Android'de, her stili ve ağırlığı ayrı kaynaklar olarak referans vermek yerine, XML kaynağı olarak yeni bir yazı tipi ailesi oluşturabilir ve tek bir birim olarak erişebilirsiniz. Bunu yaptığınızda sistemin, kullandığınız metin stiline göre doğru yazı tipini seçmesine izin vermiş olursunuz.
Yazı tipi ailesi oluşturmak için Android Studio'da aşağıdaki adımları uygulayın:
fontklasörünü sağ tıklayın ve Yeni > Yazı tipi kaynak dosyası'nı seçin. Yeni Kaynak Dosyası penceresi açılır.- Dosya adını girip Tamam'ı tıklayın. Yeni yazı tipi kaynağı XML'si düzenleyicide açılır.
- Her yazı tipi dosyasını, stilini ve kalınlık özelliğini
<font>öğesine ekleyin. Aşağıdaki XML, yazı tipi kaynağı XML'sine yazı tipiyle ilgili özelliklerin nasıl eklendiğini gösterir:<?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/lobster_regular" /> <font android:fontStyle="italic" android:fontWeight="400" android:font="@font/lobster_italic" /> </font-family>
XML düzenlerinde yazı tiplerini kullanma
Yazı tiplerinizi (tek bir yazı tipi dosyası veya yazı tipi ailesindeki bir yazı tipi) TextView nesnelerinde ya da fontFamily özelliğini kullanarak stillerde kullanın.
Not: Bir yazı tipi ailesi kullandığınızda, bu ailenin yazı tipi dosyalarını kullanmak için TextView gerektiğinde kendi kendine açılır.
TextView'a yazı tipi ekleme
TextView için yazı tipi ayarlamak üzere aşağıdakilerden birini yapın:
- Düzen XML dosyasında
fontFamilyözelliğini, erişmek istediğiniz yazı tipi dosyası olarak ayarlayın.<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/lobster"/>
TextViewiçin yazı tipini ayarlamak üzere Özellikler penceresini açın.- Özellikler penceresini açmak için bir görünüm seçin.
Not: Özellikler penceresi yalnızca tasarım düzenleyici açıkken kullanılabilir. Pencerenin alt kısmındaki Tasarım sekmesini seçin.
- textAppearance özelliğini genişletin ve fontFamily listesinden yazı tipini seçin.
-
Şekil 4. Yazı tipini Özellikler penceresinden seçme
- Özellikler penceresini açmak için bir görünüm seçin.
Şekil 5'te en sağdaki bölmede gösterilen Android Studio düzen önizlemesi, TextView içinde ayarlanan yazı tipini önizlemenize olanak tanır.
Şekil 5. Düzen önizlemesinde yazı tiplerini önizleme
Stile yazı tipi ekleme
styles.xml dosyasını açın ve fontFamily özelliğini erişmek istediğiniz yazı tipi dosyasına ayarlayın.
<style name="customfontstyle" parent="@android:style/TextAppearance.Small"> <item name="android:fontFamily">@font/lobster</item> </style>
Yazı tiplerini programatik olarak kullanma
Yazı tiplerini programatik olarak almak için getFont(int) yöntemini çağırın ve almak istediğiniz yazı tipinin kaynak tanımlayıcısını sağlayın. Bu yöntem, Typeface nesnesini döndürür. Sistem, yazı tiplerinin bilgilerinden sizin için en iyi stili seçse de setTypeface(android.graphics.Typeface, int) yöntemini kullanarak yazı karakterini belirli stillerle ayarlayabilirsiniz.
Not: TextView
bu işlemi sizin için yapar.
Kotlin
val typeface = resources.getFont(R.font.myfont) textView.typeface = typeface
Java
Typeface typeface = getResources().getFont(R.font.myfont); textView.setTypeface(typeface);
Destek Kitaplığı'nı kullanma
Destek Kitaplığı 26.0, Android 4.1 (API düzeyi 16) ve sonraki sürümleri çalıştıran cihazlarda XML'deki yazı tiplerini destekler.
Not: Destek Kitaplığı aracılığıyla XML düzeninde yazı tipi ailelerini tanımlarken, yazı tiplerinizin yüklendiğinden emin olmak için app ad alanını kullanın.
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:app="http://schemas.android.com/apk/res-auto"> <font app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/> <font app:fontStyle="italic" app:fontWeight="400" app:font="@font/myfont-Italic" /> </font-family>
Yazı tiplerini programatik olarak almak için ResourceCompat.getFont(Context, int) yöntemini çağırın ve Context örneği ile kaynak tanımlayıcıyı sağlayın.
Kotlin
val typeface = ResourcesCompat.getFont(context, R.font.myfont)
Java
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);