Xamarin.Forms Farklı Cihazlarda Gerçek Boyutlar – Bölüm 22

Xamarin

Github Bölüm 22 solution’u: github.com/SamedBll/XamChap/Boyutlar

 

Metrik Boyutlar

Xamarin.Forms uygulamasındaki boyutların yaklaşık olarak inç ve santimetre ölçülerindeki boyutlara nasıl karşılık geldiğini bildiğinize göre, öğeleri, çeşitli aygıtlarda yaklaşık aynı boyutta olacak şekilde boyutlandırabilirsiniz. MetrikBoxView adı vereceğimiz ve yaklaşık bir santimetre genişliğinde ve yaklaşık bir inç yüksekliğinde bir BoxView görüntüleyen bir program yapalım:

Telefonunuzun ekranında nesneye bir cetvel koyarsanız, tam olarak istenen boyutta değil kesinlikle yakınında olduğunu göreceksiniz:

Bu programın telefonlarda çalışması amaçlanmıştır. Tabletlerde de çalıştırmak istiyorsanız, iPad ve Windows tabletleri için biraz daha küçük bir faktör belirlemek için Device.Idiom özelliğini kullanabilirsiniz.

 

Tahmini yazı tipi boyutları

Device.GetNamedSize metodunun NamedSize üyeleri dışında alternatif olarak, FontSize özelliğini gerçek sayısal yazı tipi boyutlarına ayarlayabilirsiniz, ancak küçük bir sorun var (kısaca ayrıntılı olarak ele alınması gereken bir konu). Çoğunlukla Xamarin.Forms’ta kullanılan aygıttan bağımsız aygıtlarla yazı tipi boyutlarını belirlerseniz, bu da platform çözünürlüğüne bağlı olarak aygıttan bağımsız font boyutlarını hesaplayabilirsiniz anlamına gelir.

Örneğin, programınızda 12 punto bir yazı tipi kullanmak istediğinizi varsayalım. Bilmeniz gereken ilk şey, 12 punto bir yazı tipi, basılı malzeme veya masaüstü ekranı için rahat bir boyut olabileceği halde, bir telefondaki oldukça büyük olmasıdır. Ama devam edelim.

İnç için 72 point (nokta) var, bu yüzden 12 punto bir inçin altıda biri. DPI çözünürlüğü 160 ile çarpın ve bu da cihazdan bağımsız 27 adettir.

3. Bölümdeki NamedFontSizes programına benzer bir ekranla başlayan ve daha sonra cihaz çözünürlüğünü kullanarak cihazdan bağımsız birimlere dönüştürülen sayısal punto boyutlarıyla bazı metinleri gösteren FontSizes adında küçük bir program yazalım:

Üç ekran arasındaki karşılaştırmayı kolaylaştırmak için, arka planlar tek olarak beyaza, labellar siyaha ayarlandı. İki foreach bloğu arasında StackLayout’a yerleştirilen BoxView’a dikkat edin: HeightRequest ayarı, cihazdan bağımsız olarak yaklaşık 1/80 inç yükseklik verir ve yatay bir cetvele benzemektedir.

İlginçtir, hesaplamaya dayanan sonuçlar (point size), platformlar arasında adlandırılmış (Named Size) boyutlardan daha tutarlıdır. Parantez içindeki sayılar, aygıttan bağımsız birimlerdeki sayısal FontSize değerleridir:

 

Previous
Xamarin.Forms Event Handler ile Sayfa Boyutu – Bölüm 21
Next
Xamarin.Forms Görüntü İşleme (Image Processing) – 3. Bölüm

Leave a comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir