Android XML Font Kullanımı (Android 0reo)

Merhaba Arkadaşlar,
Mobilhanem.com sitemiz üzerinden anlattığımız/yayınladığımız Android Eğitimleri yazı serimizde bu dersimizde XML Font Kullanımı ile devam ediyoruz.

Bu yazıda sizlere Android 8.0(Oreo) ile birlikte gelen ve Api 14’e kadar support kütüphaneleri ile kullanılabilen font kullanımlarını anlatacağım. Yakın bir zamanda Google IO ’17 de Google, Android Oreo işletim sistemini tanıttı bununla birlikte birçok yenilik daha tabi. Bunlardan biri ise XML Font kullanımı. Bu kısımda bizleri iki seçenek karşılıyor. XML ve İndirilebilir Font kullanımları, konu bütünlüğü itibariyle İndirebilir Font’u bir sonraki yazı da aktarmayı düşünüyorum.

Uygulamalarınızda tasarım konusunda başta dikkat edilmesi gereken konulardan birisi de fontların kullanıcı tarafında bırakacağı etkidir. TextView ya da EditText gibi komponentleri kullanırken yapmış olduğumuz kullanıcı arayüzüne uygun font kullanmaya dikkat etmeliyiz ki kullanıcı sıkılmasın.

Gelin nedir ne değildir incelemeye başlayalım.

XML Font Kullanımı nedir ?

Bundan öncesinde fontu XML’den değiştirebilmek için farklı kütüphaneler kullanıyorduk.  TextView , EditText ve  Button gibi yapılardaki textleri RobotoTextview kütüphanesi kullanarak değiştirebiliyorduk. Ancak Android 8 Oreo ile birlikte herhangi bir kütüphane kullanmadan native android sdk’sı ile bunu yapma imkanı bulduk. Hatta Support Library kütüphanesi ile  Android 4’e (SDK 14) kadar bu desteği bize sundu. Yani minimum sdk’nız 14 ve üzeri ise artık projelerinizde fontu direk xml’den ayarlayabileceksiniz.  Zaten paylaşmış olduğum RobotoTextview kütüphanesinin github sayfasına giderseniz kütüphanenin Android 8 Oreo ile birlikte deprecate olduğunu görebilirsiniz.

XML Font Support Kütüphanesi

Bildiğiniz üzere Google yeni bir özellik ya da yeni bir işletim sistemi sistemi çıkardığı zaman eski sürümlere desteğini devam ettirebilmesi için Support Kütüphanesini sunuyor. XML Font kullanımında ise bu durum geçerli Google Android Api 14 e kadar desteğini sunmaktadır.

Font Klasörü Oluşturuyoruz.

Yukarıda gördüğünüz üzere fontlarımızın bulunacağı bir xml dosyası oluşturuyoruz. Fontlarınızı sağlayabileceğiniz birçok site mevcut olmakla birlikte Google’ın bizlere sunmuş olduğu kaynakları da kullanabilirsiniz. İstediğiniz bir fontu indirerek sıkıştırılmış dosya biçiminden çıkartıp oluşturmuş olduğumuz res/font/ içerisine atıyoruz. Font’un istediğimiz metinlerde nasıl görüneceğini görebilmek için üzerine iki kez tıklayıp aşağıdaki görünümü elde edebilirsiniz.

XML Font Görünümü

Şimdi basit bir kullanımını ele alalım.

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Mobilhanem Özel Font Kullanımı"
        android:id="@+id/tvText"
        android:layout_margin="20dp"
        android:layout_centerHorizontal="true"
        android:fontFamily="@font/oswald_bold"
        android:textAppearance="@style/Base.TextAppearance.AppCompat.Large"
        />

Bu şekilde kullanacağınız gibi birçok özellik vermek istediğiniz zaman (weight, style vs.) bir stil dosyası üzerinden gerçekleştirmeniz daha doğru olacaktır.

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
      <font android:fontStyle="normal"
            android:fontWeight="700"
            android:font="@font/oswald_bold"
            app:fontStyle="normal"
            app:fontWeight="700"
            app:font="@font/oswald_bold" />
      <!-- Android Oreo dan aşağıdaki sürümleri desteklemesi için app: namespace li halinide ekliyoruz. -->
</font-family>

Programatik olarak ise aşağıdaki gibi kullanılmaktadır.

Typeface typeface = ResourcesCompat.getFont(this, R.font.oswald_bold);
tvText.setTypeface(typeface);

Mobil Görünüm

TextView üzerinde Font Görünüm

Umarım faydalı olmuştur, bir sonraki dersimizde diğer font kullanımı olan İndirilebilir Font da görüşmek üzere.

6

Yusuf Çakal

Cumhuriyet Üniversitesi - Bilgisayar Mühendisliği (2014-2018)

6 Yorum

  • Güzel paylaşım, konuların üstüne yada altına teşekkür butonu eklerseniz hem yazar hem de okuyucular için faydalı olacaktır. Ayrıca soru cevap kısmında kullanılan hesap bu sayfada geçerli olmuyor bunun da düzeltilmesi gerekiyor ve beni hatırla butonuna basılmasına rağmen her seferinde tekrar giriş yapmak zorunda kalıyoruz.

    Teşekkürler.

  • Merhaba Yusuf

    xml de dosyası oluşturduğumuzda sadece italic ve normal tipte font tanımlayabiliyoruz sanırım.

    bold semibold gibi tiplerde tanıtmak istiyorum. bir yolu var mıdır?

  • Merhaba, android bir uygulamaya sahibim. WordPress sitemden XML olarak bilgileri çekmektedir. Ancak bu son güncellemelerle andorid 8 ve üzeri kullanan kullanıcılar, sitemden çekilen yazının sadece başında beli bölüme kadar görebiliyor. Bunun sebebi nedir yardımcı olabilir misiniz?

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?