Xamarin Forms’da Özel Font Kullanımı

Xamarin Forms’da hızlıca multi platform mobile uygulamalar geliştirebiliyoruz fakat bazı durumlarda manuel olarak işlemlerimizi yapmamız gerekiyor şuan yazılan makale konusunda olduğu gibi ios, android ve diğer platfomlar için kullanacağınız özel fontları manuel ayarlamamız gerekiyor bu durumda yapılacakları adım adım bu makalede göreceğiz.

Xamarin Forms’da Özel Font Kullanımı

Xamarin Forms'da Özel Font KullanımıGiriş metninde xamarin forms’da özel fontlar kullanmak istersek kullanmak istediğimiz platform için manuel uygulamamız gerektiğini belirtmiştik bu durumun multi platform uygulamaya uygun bir şekilde xamarin ekibi tarafından sonraki zamanlarda bir çözüm getirileceğini umuyorum fakat bu çözüm gelene kadar makaledeki manuel yöntemi kullanmaya devam edeceğiz. Özel font denilince aklınıza sadece yazı fontunu ayarlamak için kullandığımız Arial, Calibri, Times New Roman v.b. fontlar gelmesin bunun haricinde fontello, fontawesome, icons8 v.b sitelerden elde edeceğiniz font simge paketlerinide kolaylıkla mobil projelerinizde simge ihtiyacını gidermek için kullanabilirsiniz böylelikle telefon çözünürlükleri değişsede kullandığınız font simge paketleri birer yazı karakteri gibi render edileceğinden bozulma yaşanmayacaktır ve bir avantaşıda font olduğu için simgeleriniz kolaylıkla renk değişimi yapabilirsiniz TextColor attribute’ü yardımıyla.

 

iOS İçin Özel Font Ekleme ve Kullanma

Kullanmak istediğiniz fontları iOS projesi altında yer alan Resources adlı klasör altına atabilirsiniz ama isterseniz benim yaptığım gibi Resources adlı klasör altında Fonts adında bir klasör açıp fontlarınızı içerisine atabilirsiniz böylelikle daha derli toplu olmuş olur proje hiyerarşisi, fontları attıktan sonra bu fontları ios sistemin tanıtmaya geldi sıra. iOS‘da tanıtma işlemini info.plist dosyasında array listesi tanımlayarak gerçekleştiriyoruz. info.plist dosyasını xml olarak açın(Visual Studio info.plist dosyasına Sağ Tuş > Open With > Xml (Text) Editor) ardından alttaki kodları ekleyiniz. Eğer manuel eklemek isterseniz info.plist dosyasını editör yardımıyla açın.

XML(info.plist)

ios customfontFontları şimdi nasıl kullandığımızı görelim. Alttaki kodda birşeye dikkatinizi çekmek istiyorum sağda fontların listesinin yer aldığı görselde android projesi alt
ına yer alan fontları görüyorsunuz aynı adlarla fontlar iOS projesinede atıldı ama isim farklılıkları olduğundan OnPlatform kullandık FontFamily için daha açık konuşmak gerekirse iOS font dosyalarını ararken fiziksek dosya adına göre değil font adına göre arama yapmaktadır siz dosyanın adını istediğiniz gibi değiştirin ama font’un metasından ilgili dosya adını almaktadır OnPlatform kullanmak istemiyorsanız şöyle birşey yaparsınız iOS‘un fontunuzu gerçek adını ne olarak okuduğunu öğrenip android projesindede dosya adlarını o şekilde düzeltip kullanabilirsiniz. iOS projesinde yer alan ve bir üstteki kodda tanıttığınız fontların gerçek adları iOS tarafından ne olarak biliyor öğrenmek için makale devamında AppDelegate.cs dosyası için eklemeleri bulabilirsiniz.

C#(AppDelegate.cs)

iOS cihazınızda yüklü olan fontları LogFonts adlı metod ile konsola yazdırıyoruz. Böylelikle kullanmak istediğiniz fontun adını öğrenebileceğiz.

Makalenin giriş kısımlarında iOS’da fontun adını yazarken fiziksel ada göre yazmıyoruz demiştik iOS’un okudğu ve fontun orjinal adı olan ad ile yazmak zorundayız bu durumda eğer hem android hemde ios tarafında tek isimle kullanmak istiyorsanız iOS’un okuduğu font adına göre android’de fiziksel dosya adını değiştirirseniz iOS için ad şu font için ad bu demek zorunda kalmazsınız.

C#(CustomFontLabelRenderer.cs)

Bu label renderer sadece android için geçerli iOS için herhangi bir label render’a gerek yoktur.

Son olarak yaptığımız işlemler sonucunda elimize ne geçti bakalım 🙂

Lato fontları ve Roboto fontlarının yazdığımız metne sorunsuz uygulandığını gördük ama benim için bu custom font’un en önemli tarafı font-awesome ve fontello gibi fontları mobilde kullanma olanağı sağlaması sizede şiddetle tavsiye ederim font simge paketlerini kullanmanızı.

 Android Ekran Görüntüsü

 iOS Ekran Görüntüsü

 Screenshot 1482181632 ios

[fa class=”fa-github”] Burada yazdığımız örneklere github üzerinden erişmek için buraya tıklayın.

5/5 - (1 vote)

Murat Öner sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et