• Şuradasınız
  • Anasayfa
  • Android
  • Android Dersleri 11 : Yazı Fontunu Değiştirme

Android Dersleri 11 : Yazı Fontunu Değiştirme

Merhaba arkadaşlar. Bu zamana kadar 10 ders anlattım ve temel şeyler üzerinden gittim. Veritabanı, servisler gibi olaylara girmedim. Bir müddet daha böyle gideceğim. Bu derste de uygulamamızdaki yazı fontlarını değiştirmeyi anlatacağım.
Android uygulamalarımız varsayılan yazı fontuyla beraber gelir. Bunu nasıl değiştirebiliriz şimdi onu anlatalım. İlk olarak http://www.urbanfonts.com/fonts.php?fontauthor=2761 linkine tıklayalım ve istediğimiz bir fontu indirelim ve eğer zip içerisindeyse çıkaralım. Uzantısı .ttf olacaktır. Ben örnek bir site verdim siz de istediğimiz siteden indirebilirsiniz.

Bu indirdiğimiz fontu yani .ttf dosyasını, projemizde assets klasörünün altında fonts klasörüne atalım. Eğer assets altında bu klasör yoksa oluşturalım. Klasörlerimizin görüntüsü şu şekilde olacaktır.

1

 

Daha sonra projemizdeki sayfamıza 1 tane edittext 1 adet textview ve 1 tane de buton ekleyelim. Sayfamızın görüntüsü şu şekilde olacaktır.

2

 

Buradaki sarı ünlemleri kaldırmaya uğraşmadım. Siz kaldırmak istiyorsanız bir önceki yazımdan bakarak yapabilirsiniz. Şimdi bu sayfanın java dosyasına geçelim yani MainActiviy.java dosyasına. Burada her kontrolümüz için bir nesne oluşturacağız ve bundan farklı olarak da bir tane yazı fontumuz için bir nesne oluşturacağız. Java dosyamızın son görüntüsü şu şekilde olacaktır.

1

 

Ekranımızdaki 3 kontrolü kullanabilmek için bunlardan 3 adet nesne oluşturduk (b1,e1,t1). Fontumuzu kullanabilmek için de Typeface sınıfından tf1 nesnesi oluşturduk. onCreate() metodunda da bunları id’leri ile bağladık. tf1 nesnesi için de createFromAsset() metodunu kullandık ve bağlama işlemini id ile değil de dosyanın konumu ile yaptık. Bu metod 2 parametre aldı. İlk parametre sabit ve diğer parametre de tff uzantılı dosyamızın projedeki konumu.

Daha sonra b1 nesnesinin yani butonun tıklanma olayına da font değişikliklerini yazdık. Font değişikliği için setTypeFace() metodunu kullandık. Hangi nesne için font değişikliği yapacaksak o nesne ile beraber kullandık. Ayrıca buradaki tıklanma olayında şunu da yaptık: Butona tıklandığında edittext içerisindeki yazı, textview‘e aktarılacak. Bunu da setText() metodu ile yaptık. Parametre olarak da get yani alma işlemi yapan getText() metodunu verdik. Bu metod, edittext içerisindeki yazıyı alır.

Uygulamamızın ekran görüntüleri şu şekilde olacaktır.

1 2

 

Butona tıkladığımızda yazdığımız yazıyı alt tarafa geçirdi ve hem butonun hem de alttaki yazının fontunu değiştirdi. Burada 1 tane değil de birden fazla font da kullanabilirdik ve hepsini ayrı ayrı değiştirebilirdik. Bunun için de tabi fontumuz kadar nesne oluşturmamız gerekir. Yani tf1, tf2 gibi nesneler oluştururduk ve tf1’i butona, tf2’yi de textview’a bağlardık. Böylece hem buton hem de textview farklı fontlara sahip olurdu. Biz bu örnekte ikisini de aynı yaptık.

Bir müddet daha androiddeki araçları tanıyacağız ve daha sonra gelişmiş uygulamalara başlayacağız.

 

Benzer Yazılar

Yorumlar

  • Yiğit , 11 Kasım 2013 - 16:35

    Aynısını yaptım.Fakat hiçbir hata yok tek tek kontrol ediyorum.unfortunately project has stoppet deyip daha ilk sayfayı bile açmadan kapanıyor nedeni ne olabilir acaba?

    Cevapla
  • Kasif , 02 Nisan 2014 - 13:05

    Selamün Aleyküm,

    hocam fonts a kaydettiğim tüm yazı tiplerini bir diziye(string array) nasıl aktarabilirim? (seekbar ile değiştirmek istiyorum).

    Çalışmalarınızdan dolayı tebrik ve teşekkür ederim.

    Hayırlı günler

    Cevapla
    • Mehmet Kirazlı , 02 Nisan 2014 - 17:25

      Yazı tiplerinin isimlerini aynen bir arraya atın. Çekmek istediğinizde assets/fonts/list.get(1) gibi bir dizin vererek fontu çekebilirsiniz. Burada list.get(1) sizin fontunuzun adı olacak. Sonuna ttf de eklerseniz çekebilirsiniz.

      Cevapla
  • Aydin , 02 Ağustos 2014 - 15:18

    hocam 11. derse kadar aralıksız geldim ve herşey için teşekkür ederim. ara ara hatalar alıyorum ama tekrar kodları kontrol ettiğimde sorunun bende olduğunu farkediyorum,
    tekrardan emeğiniz için teşekkürler. sayfanızdaki makaleleri dikkatle takip ediyorum.
    iyi çalışmalar ustam

    Cevapla

Yorum Yazın

Su elementleri kullanabilirsiniz : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Arama
RSS
Beni yukari isinla