Merhabalar,

Bu yazımda kullanıcı arabirimlerinde bulunan öğelerde kullandığımız birimlerden bahsedeceğim. Birimler tasarladığınız projenizdeki öğelerin farklı çözünürlükteki ekranlarda farklı görünmesi sorunu çözmemizi sağlar.

İlk olarak units isimli bir proje açalım.

GraphicalLayout tabında grafiksel görünümü görmekteyiz. Projemiz ilk açıldığında hali hazırda bir TextView öğesi bulunmaktadır. Varsayılan olarak gelen bu öğeyi silelim.

Pallette kısmındaki Form widgets ın altındaki öğelerden bir butonu ekrana taşıyalım. Daha sonra graphical layout sekmesinin yanındaki main.xml sekmesine tıklayalım.

main.xml dosyasına baktığımızda LinearLayout ve Button olmak üzere iki tane öğemizi görmekteyiz. Bu öğelere ait layout_width ve layout_height kodlarını görmekteyiz. Genişlik ve yükseklik için bir kaç seçeneğimiz bulunmakta burada. Bunlar “fill_parent” ve “wrap_content”.

“fill_parent”, ‘seçilen öğenin arkasında bulunan ekranı kapla’ anlamına gelmektedir. Bizim projemizde; LinearLayout, yani siyah ekran, tüm arkaplanı kaplamaktadır.

“wrap_content” ise, ‘seçilen öğenin görünmesi için gerekli olan alan ne ise o kadar alanı kapla’ anlamına gelmektedir.

Genişlik ve yükseklik için bir de  “match_parent” opsiyonu vardır. Bu seçenek “fill_parent” ile aynı işlevi görmektedir.

xml dosyasından biraz bahsettik. Tekrar graphical layout sekmesine gelelim ve ekrandaki butonumuzu seçelim. Properties penceresinden “Misc” kısmına geldiğimizde resimdeki gibi layout width ve layout height kısımlarını görmekteyiz. xml dosyasında yapadilğimiz değişiklikleri buradan da yapabiliriz.

Aynı değişiklikleri ekranın hemen üst kısmında bulunan menüden de ayarlayabilirsiniz. Bu menüde toggle ve orientation butonlarını göreceksiniz. Bu butonları da teker teker deneyebilirsiniz.

Eclipse ortamında yükseklik ve genişlik ile ilgili değişiklikleri nasıl yapabileceğimizden bahsettik. Bunun dışında öğelerimize nasıl boyutlandırma yapabiliriz ona biraz değinelim. Örnek olarak butonumuzun genişliğini 300 pixel yüksekliğini 250 pixel yapalım. Burada vereceğimiz değerin birimi çok önemli. Bu değer integer olamaz. String olmak zorunda. Pixel anlamına gelen “px” değeri giriyoruz.

Biz burada pixel değeri verdik ama buton farklı cihazlarda farklı boyutlarda gözükebilir. Bu problemi gidermek için dp(device independent pixel(cihaz bağımsız pixel)) birimidir. Dp yerine dip de kullanılabilir fakat genelde dp kullanılmaktadır.

Buton boyutlandırmasından bahsettik şimdi de yazı boyutlandırmasından bahsedelim. Yazı boyutlandırmasında da dp birimini kullanabiliriz. Bu birimi kullanmamız durumda da yazı ölçekleri ile ilgili problem yaşayabiliriz yazı görüntüsü tercihlere göre değiştiğinden. Bu sorunu çözmek için sip(scale independen pixel (ölçek bağımsız pixel)) kullanabiliriz. Ya da genel olarak kullanılan sadece sp.

Ekranımızdaki butonu silelim, form widget tan bir TextView ekleyelim ve boyutlandırmayı sp olarak yapalım.

Bu yazımda kullanıcı ara birimlerinde kullanılan birimlerden bahsettim. Umarım faydalı olur :)