XML kaynağı olarak yazı tipi ekleme

Compose yöntemini deneyin
Jetpack Compose, Android için önerilen kullanıcı arayüzü araç setidir. Compose'da metni nasıl kullanacağınızı öğrenin.

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:

  1. res klasörünü sağ tıklayın ve Yeni > Android kaynak dizini'ne gidin. Yeni Kaynak Dizini penceresi açılır.
  2. Kaynak türü listesinde font'u seçin ve Tamam'ı tıklayın.

    Not: Kaynak dizininin adı font olmalıdır.

    Yazı tipi kaynak dizinini ekleme

    Şekil 1. Yazı tipi kaynak dizinini ekleme.

  3. Yazı tipi dosyalarınızı font klasörüne ekleyin.

    Aşağıdaki klasör yapısı R.font.dancing_script, R.font.lobster ve R.font.typo_graphica öğelerini oluşturur.

    Kaynak dizinine yazı tipi dosyalarını ekleme

    Şekil 2. Yazı tipi dosyalarını res/font dizinine ekleme

  4. Dosyanın yazı tiplerini düzenleyicide önizlemek için bir yazı tipi dosyasını çift tıklayın. Yazı tipi dosyasını önizleme

    Ş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:

  1. font klasörünü sağ tıklayın ve Yeni > Yazı tipi kaynak dosyası'nı seçin. Yeni Kaynak Dosyası penceresi açılır.
  2. Dosya adını girip Tamam'ı tıklayın. Yeni yazı tipi kaynağı XML'si düzenleyicide açılır.
  3. 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"/>
  • TextView için yazı tipini ayarlamak üzere Özellikler penceresini açın.
    1. Ö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.

    2. textAppearance özelliğini genişletin ve fontFamily listesinden yazı tipini seçin.
    3. Yazı tipini Özellikler&#39;den seçme

      Şekil 4. Yazı tipini Özellikler penceresinden seçme

Ş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.

Düzen önizlemesinde yazı tiplerini önizleme

Ş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);