XML kaynağı olarak yazı tipi ekleme

"Oluştur" yöntemini deneyin
Android için önerilen kullanıcı arayüzü araç seti Jetpack Compose'dur. Compose'da metni nasıl kullanacağınızı öğrenin.

Android 8.0 (API düzeyi 26), XML'de yazı tiplerini kullanıma sundu. Bu özellik, yazı tiplerini kaynak olarak kullanabilmenizi sağlar. 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. 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 değerini kullanın.

Android 4.1 (API düzeyi 16) ve sonraki sürümleri çalıştıran cihazlarda XML'deki yazı tipleri özelliğini 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.

Kaynak olarak yazı tipi 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 ardından Tamam'ı tıklayın.

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

    Yazı tipi kaynak dizini ekleme

    Şekil 1. Yazı tipi kaynak dizini 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 oluşturur.

    Yazı tipi dosyalarını kaynak dizinine ekleme

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

  4. Dosyanın yazı tiplerini düzenleyicide önizlemek için 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 yazı tipi dosyaları kümesidir. Android'de, her stil ve kalınlığı ayrı kaynaklar olarak referans vermek yerine XML kaynağı olarak yeni bir yazı tipi ailesi oluşturabilir ve bu kaynağa tek bir birim olarak erişebilirsiniz. Böylece, kullandığınız metin stiline göre sistemin 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'i düzenleyicide açılır.
  3. Her yazı tipi dosyasını, stilini ve kalınlık özelliğini <font> öğesine alın. Aşağıdaki XML, yazı tipi kaynağı XML'ine yazı tipi ile ilgili özelliklerin eklenmesini göstermektedir:
    <?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ı tipleri kullanma

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

Not: Bir yazı tipi ailesi kullandığınızda, TextView söz konusu aileye ait yazı tipi dosyalarını kullanmak için gerektiğinde kendi kendine geçiş yapar.

TextView'e 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ına 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 mülkünü 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 içinde ayarlanan yazı tipini önizlemenize olanak tanır.

Düzen önizlemesinde yazı tiplerini önizleme

Şekil 5. Yazı tiplerini düzen önizlemesinde önizleme.

Bir 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 bilgilerinden 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'deki yazı tiplerini destekler.

    Not: Yazı tipi ailelerini Destek Kitaplığı aracılığıyla XML düzeninde beyan ederken, yazı tiplerinizin yüklenmesini sağlamak 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ısı sağlayın.

    Kotlin

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

    Java

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