XML kaynağı olarak yazı tipi ekleme

Android 8.0 (API düzeyi 26), yazı tiplerini kaynak olarak kullanabilmenizi sağlayan XML biçiminde yazı tiplerini kullanıma sunuyor. Yazı tiplerini kaynak olarak gruplandırmak 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. Yazı tipi kaynaklarına font kaynak türünü kullanarak 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 özelliğinde 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. New Resource Directory penceresi görünür.
  2. Kaynak türü listesinde yazı tipi'ni seçip Tamam'ı tıklayın.

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

    Yazı tipi kaynağı dizini ekleniyor

    Şekil 1. Yazı tipi kaynağı dizini ekleniyor.

  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 oluşturur.

    Kaynak dizinindeki yazı tipi dosyalarını ekleme

    2. Şekil. res/font dizinindeki yazı tipi dosyaları ekleniyor.

  4. Bir yazı tipi dosyasını çift tıklayarak dosyanın yazı tiplerini düzenleyicide önizleyin. Yazı tipi dosyasını önizleme

    3. Şekil. Yazı tipi dosyasını önizleme

Yazı tipi ailesi oluşturma

Yazı tipi ailesi, stil ve ağırlık ayrıntılarıyla birlikte bir yazı tipi dosyaları grubudur. Android'de, XML kaynağı olarak yeni bir yazı tipi ailesi oluşturabilir ve her bir stile ve ağırlığa ayrı kaynaklar olarak başvurmak yerine, yazı tipi ailesine tek bir birim olarak erişebilirsiniz. Bu şekilde, sistemin kullandığınız metin stiline göre doğru yazı tipini seçmesini sağlarsınız.

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. New Resource File penceresi görünür.
  2. Dosya adını girip Tamam'ı tıklayın. Yeni yazı tipi kaynağı XML düzenleyicide açılır.
  3. Her yazı tipi dosyasını, stili ve ağırlık özelliğini <font> öğesine yerleştirin. Aşağıdaki XML'de, yazı tipi kaynağı XML'ine yazı tipiyle ilgili özelliklerin eklenmesi gösterilmektedir:
    <?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

fontFamily özelliğini kullanarak yazı tiplerinizi TextView nesnelerinde veya stillerde (tek bir yazı tipi dosyası veya bir yazı tipi ailesinden bir yazı tipi) kullanın.

Not: Bir yazı tipi ailesi kullandığınızda, TextView bu ailedeki yazı tipi dosyalarını kullanmak için gerektiğinde kendiliğinden geçiş yapar.

TextView'a yazı tipi ekleme

TextView için yazı tipi ayarlamak istiyorsanız aşağıdakilerden birini yapın:

  • Düzen XML dosyasında fontFamily özelliğini, erişmek istediğiniz yazı tipi dosyasına ayarlayın.
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/lobster"/>
    
  • TextView öğesinin yazı tipini ayarlamak için Ö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. textGörünüm özelliğini genişletin ve ardından fontFamily listesinden yazı tipini seçin.
    3. Özellikler&#39;den yazı tipini seçme

      4. Şekil. Özellikler penceresinden yazı tipini seçin.

Şekil 5'te en sağdaki bölmede gösterilen Android Studio düzen önizlemesi, TextView öğesinde ayarlanan yazı tipini önizlemenize olanak tanır.

Düzen önizlemesinde yazı tiplerini önizleme

5.Şekil Düzen önizlemesinde yazı tipleri önizleniyor.

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, bir Typeface nesnesi döndürür. Sistem, yazı tiplerinin bilgilerine göre sizin için en iyi stili seçse de yazı tipini belirli stillerle ayarlamak için setTypeface(android.graphics.Typeface, int) yöntemini kullanabilirsiniz.

    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 biçiminde yazı tiplerini destekler.

    Not: Destek Kitaplığı aracılığıyla XML düzeninde yazı tipi ailelerini bildirirken yazı tiplerinizin yüklendiğinden emin olmak için uygulama 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ısını sağlayın.

    Kotlin

    val typeface = ResourcesCompat.getFont(context, R.font.myfont)
    

    Java

    Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);