Android üzerinde harici yazı tipleri (external fonts) kullanımı bugünkü yazımın konusu. Bir önceki yazımda paylaştığım custom button örneği üzerinde birkaç değişiklik yaparak bu konu hakkında sizlere bilgi vermeye çalışacağım.
Bu işlemi gerçekleştirebilmek için bazı font dosyaları indirmemiz ve düzenlememiz gerekiyor. Bu işlemleri başarılı bir şekilde gerçekleştirebilmek için gereken adımları yazının devamında belirtmeye çalıştım. Umarım çok farklı font tipleriyle dilediğiniz gibi uygulama geliştirirken yararlandığınız bir kaynak olur.
Uygulamanın kodlarını sayfanın sonunda yer alan linkten edinebileceğinizi de ayrıca belirtmek isterim.
1. Özel Font Dosyaları
http://www.fontsquirrel.com/fontface adresinden dilediğimiz font dosyasını indirelim. ( Bu konuda ücretsiz hizmet veren birçok site mevcut. ) Aşağıda sitenin içeriğinden bir örneği bulabilirsiniz.
Bu sitenin en sevdiğim taraflarından biri Font dosyasını indirmeden önce test edebiliyor olmanız. Font sayfasına girdiğinizde, test drive sekmesine girerseniz aşağıdaki gibi bir test ekranıyla karşılaşıyorsunuz. Bu sayede saçma karakter durumlarına karşı bir avantaj sağlamış oluyoruz.
2. Font Dosyalarını Uygulamaya Ekleme
Dosyaları .zip klasörden çıkartıp, assets/fonts altına kopyalayalım.
3. Font Dosyalarının Uygulamada Elementler Üzerinde Kullanılması
Fontları uygulamada kullanmak için önce assets üzerinden tanımlayacağız, daha sonra ise dilediğimiz element için atama yapacağız. Aşağıda bununla ilgili kod parçalarını bulabilirsiniz.
//Assets üzerinden çağırma Typeface font1=Typeface.createFromAsset(getAssets(), "/fonts/UNDERCOV.ttf"); |
//button_1'deki fontlar icin kullanimi button_1=(Button)findViewById(R.id.button1); button_1.setTypeface(font1); |
4. Uygulamanın MainActivity Sınıfı
package com.ders.custombuttonshape; /* * Coded By Tugrul Aşık * Visit tugrulasik.com for more information * 28.01.2013 */ import android.app.Activity; import android.graphics.Typeface; import android.os.Bundle; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { Button button_1,button_2,button_3,button_4; TextView textView1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Typeface ayarlari //Dosya erisim pathlerine dikkat ! /fonts/UNDERCOV.ttf dosya yolu HATALI olurdu ! //Bu kapsamda yapacaginiz bir hata Caused by: java.lang.RuntimeException: native typeface cannot be made hatasini almaniza sebep olacaktir. Typeface font1=Typeface.createFromAsset(getAssets(), "fonts/UNDERCOV.ttf"); Typeface font3=Typeface.createFromAsset(getAssets(), "fonts/Vanilla.ttf"); Typeface font2=Typeface.createFromAsset(getAssets(), "fonts/PLUMP.ttf"); Typeface font4=Typeface.createFromAsset(getAssets(), "fonts/JUNEBUG_.ttf"); Typeface font_textview=Typeface.createFromAsset(getAssets(), "fonts/DIGITALDREAM.ttf"); //Typeface'lerin elementlere atanmasi textView1=(TextView)findViewById(R.id.textView1); textView1.setTypeface(font_textview); button_1=(Button)findViewById(R.id.button1); button_1.setTypeface(font1); button_2=(Button)findViewById(R.id.button2); button_2.setTypeface(font2); button_3=(Button)findViewById(R.id.button3); button_3.setTypeface(font3); button_4=(Button)findViewById(R.id.button4); button_4.setTypeface(font4); } } |
Uygulamanızda font dosyalarını tanıtırken, dosya yolunda hata yapmamız durumunda Caused by: java.lang.RuntimeException: native typeface cannot be made hatasını alacaksınızdır. Bundan dolayı fonts/UNDERCOV.ttf yerine /fonts/UNDERCOV.ttf gibi bir yol kullanmadığınızdan emin olunuz !
Okuduğunuz için teşekkürler 😉 İyi çalışmalar, iyi geliştirmeler…