Farklı ekranları desteklemek, kullanıcılarınıza kullanıcı dostu uygulamalar sunmanın en önemli konusudur. Kullanıcılarınızın uygulamalarınızı kullanmaya devam etmesini istiyorsanız onlara ekranda güzel görünen uygulamalar sunmalısınız. Bu nedenle farklı ekranları desteklemeyle ilgili terim ve kavramlara hâkim olmanız gerekir. Terimler ve kavramlar
Ekran boyutu
Ekran yoğunluğu
Ekran yönü (orientation)
Çözünürlük
Yoğunluktan bağımsız piksel (dp)
Desteklenen ekran aralığı
Small
Normal
Large
Xlarge
Bu terimleri Android geliştirici sitesinde “Device Capability” başlığı altında, özellikle “https://developer.android.com/training/multiscreen/screensizes” bağlantısında öğrenebilirsiniz. Farklı ekranlar nasıl desteklenir?
Önce manifest dosyasında uygulamanızın hangi ekran boyutlarını desteklediğini açıkça belirtmeniz gerekir
<supports-screens android_smallScreens="true" android_normalScreens="true" android_largeScreens="true" android_xlargeScreens="true" android_anyDensity="true" />
Farklı ekran boyutları için farklı düzenler (layout) hazırlamanız gerekir
res/layout/my_layout.xml //layout for normal screen size ("default") res/layout-small/my_layout.xml // layout for small screen size res/layout-large/my_layout.xml // layout for large screen size res/layout-xlarge/my_layout.xml // layout for extra large screen size res/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation
Farklı ekran yoğunlukları için farklı bitmap drawable'lar sunmanız gerekir
res/drawable-mdpi/my_icon.png // bitmap for medium density res/drawable-hdpi/my_icon.png // bitmap for high density res/drawable-xhdpi/my_icon.png // bitmap for extra high density
Yapılandırma niteleyicilerini (configuration qualifiers) kullanın
Boyut
small, normal, large, xlarge
Yoğunluk
ldpi, mdpi, hdpi, xhdpi, nodpi, tvdpi
Yön
land, port
En boy oranı
Long, notlong
Alternatif düzenler ve drawable'lar tasarlayın
En iyi uygulamalar Özetle:
XML düzen dosyasında boyut belirtirken wrap_content, match_parent ya da dp birimlerini kullanın
Uygulama kodunuzda sabit piksel değerleri kullanmayın
Metin boyutu için sp kullanın
Sabit kodlamadan (hardcoding) kaçının
AbsoluteLayout (kullanımdan kaldırılmıştır) ya da ConstraintLayout kullanmayın
RelativeLayout kullanın ya da
Uygulamanıza uygun düzenleri arayın
Farklı ekran yoğunlukları için alternatif bitmap drawable'lar sağlayın
o res/drawable-mdpi/icon.png //for medium-density screenso res/drawable-hdpi/icon.png //for high-density screens Aytunç BAKIR, Bilgisayar Mühendisi Kaynak: https://developer.android.com
