ANDROID TÜYOLARI-I KODLAMA İLE İLGİLİ İŞE YARAR TÜYOLAR
Erkin Deveci | November 21, 2013
TABLET VE TELEFONLAR İÇİN AYRI LAYOUTLAR NASIL OLUŞTURABİLİRSİNİZ? Bir activity veya layout oluşturduğumuzda sistem res/layout/ klasörüne xmladi.xml olarak kaydeder. Bu 600dp çözünürlüğünden küçük tüm cihazlarda aktif olarak çalışır. Eğer alternatif bir layoutunuz yok ise tabletlerde’de bu klasördeki xml parse edilir.
PEKİ TABLETLER İÇİN LAYOUT NASIL EKLERİM? Eğer proje içinde res klasöründe /layout-sw600dp ve /layoutsw720dp klasörleri yok ise res klasörüne sağ tıklayıp bu klasörleri oluşturabilirsiniz. Eclipse ve Android Studio’da otomatik olarak oluşturulmuştur (Eğer silmediyseniz). Bu klasörler içinde res/layout klasöründe bulunan xml’lerinizle aynı ad olacak şekilde farklı tasarımlarda xml eklemesi yapabilirsiniz. Layout-sw600dp 7” tabletler için, layout-sw720 ise 10” tabletler için parse edilir. Alternatif olarak sw-420dp , sw-300dp içinde tasarımlarınızı yapabilirsiniz.
320dp: telefon ekranı (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc). 480dp: tablet ekranı (480x800 mdpi).
PAGE 1
res/layout-sw600dp/main_activity.xml # 7” tabletler (600dp ve daha geniş) res/layout-sw720dp/main_activity.xml # 10” tabletler (720dp ve daha geniş)
Bilgilendirme Notu: sw teriminin açılımı “smallest width” en küçük genişlik birimi olarak tanımlayabiliriz. sw terimi yerine klasör adlandırmalarınızda sadece layout-w600dp ve çeşitlerini de kullanabilirsiniz. layout-w600dp xml’i 600dp genişlik ve daha fazla genişlikte olan cihazlarda işlenir.
BIRAZ DAHA DETAY… Yukarıda bahsettiğim üzere 7” , 10” tabletleri ayırmak mümkün bunun harici android’de ekran büyüklükleri 4’e ayrılmış durumda. Küçük(small), Normal(normal), Büyük(Large),xLarge En Büyük. Dilerseniz layout’larınızı bu büyüklüklere göre de ayırabilirsiniz. Yukarıda Tablet’lere layout eklemeyi anlattığım gibi eklemeleri yapabilirsiniz isimlendirmeniz de aşağıdaki şekilde olmalı. res/layout/ xmladi.xml // normal ekran , default olarak bu kullanılıyor res/layout-small/ xmladi.xml // küçük ekranlar small res/layout-large/ xmladi.xml // büyük boyutta ekranlar large res/layout-xlarge/ xmladi.xml // en büyük boyut
PAGE 2
LAYOUTLARINIZI YATAY(LANDSCAPE) VEYA DIKEY(PORTRAIT) POZISYONLARDA FARKLI TASARIMLAR YAPMANIZ MÜMKÜN Biraz daha detay adlı başlıkta bahsettiğim adlandırma’nın aynısında klasör adlarına eğer –land adlandırmasını eklersek bunu başarabiliyoruz. res/layout-small-land/xmladi.xml landscape small res/layout-large-land/xmladi.xml ekranlar landscape large
// küçük ekranlar // büyük boyutta
EKLEMİŞ OLDUĞUMUZ RESİMLER(DRAWABLE)’İ EKRANLARIN ÇÖZÜNÜRLÜKLERİNE GÖRE NASIL AYARLARIZ? Bu da oldukça kolay. Layoutlar’da nasıl oluştururken sonuna – işaretiyle bir değer giriyorsak resimler(drawable)’lar içinde aynı şey söz konusu. Eclipse ve Android Studio size otomatik olarak bu klasörleri sunar. Bu klasörler yok ise aşağıdaki adlarda eklemelerini yapabilirsiniz. res/drawable-mdpi/my_icon.png ekranlar veya çözünürlükler için res/drawable-hdpi/my_icon.png çözünürlükteki cihazlar için res/drawable-xhdpi/my_icon.png çözünürlük cihazlar
// orta ölçekteki // yüksek // daha yüksek
PAGE 3
res/drawable-xxhdpi/my_icon.png çözünürlükteki cihazlar
// en yüksek
Çözünürlük değerlerinin neye göre mdpi, hdpi, xhdpi ve xxhdpi olduğunu aşağıda paylaşıyorum.
Low density (120), ldpi
Medium Extra high High density density (160), density (320), (240), hdpi mdpi xhdpi
Small screen
QVGA (240x320)
480x640
Normal screen
WQVGA400 (240x400) WQVGA432 (240x432)
HVGA (320x480)
WVGA800 (480x800) WVGA854 (480x854) 600x1024
640x960
Large screen
WVGA800** (480x800) WVGA854** (480x854)
WVGA800* (480x800) WVGA854* (480x854) 600x1024
1024x600
WXGA (1280x800)† 1024x768 1280x768
1536x1152 1920x1152 1920x1200
2048x1536 2560x1536 2560x1600
Extra Large screen
PAGE 4
*Tablo: Google Developer Reference
Bilgilendirme Notu: Resim çözünürlüklerinde 3:4:6:8 oranı uygulanır. Örnek vermek gerekirse: mdpi sizin temel resminizdir ve buna göre büyütüp, küçültmeniz gerekir çözünürlüğü.
36x36 for low-density (x0.75 ile çarpılır) 48x48 for medium-density (temel resim çözünürlüğünüz) 72x72 for high-density (x1.5 ile çarpılır) 96x96 for extra high-density (x2 ile çarpılır) Referans ve daha detaylı bilgi için android developer sayfasına gidebilirsiniz: http://developer.android.com/guide/practices/screens_suppor t.html
PAGE 5