Android farkli ekran tipleri icin tasarim yapmak


     Birincisi, Layout seçimi çok önemli.


     Yaptığım araştırmalar sonucunda öğrendim ki AbsouluteLayoutbelki de en kötü seçim. AbsoluteLayout ile öğeler için kesin bir yer belirleyebilirsiniz. Örn: position x=110px, y=180px; Fakat bu kesinlikle önerilmeyen bir durum çünkü farklı ekranlarda veya farklı çözünürlükteki Android cihazlarda kaymalar olduğunu göreceksiniz. 

     Bunun yerine RelativeLayout kullanmanızı tavsiye ederim. RelativeLayout’ta parent-view’e göre ya da diğer elemanlara göre(relatively – bunlarla bağlantılı) bir pozisyon seçileceği için, istediğiniz tasarıma en yakın görünümü elde etmek mümkün. Layout seçimini hallettikten sonra sıradaki işlem olarak farklı ekran tipleri için tasarım yapmaya geldi.

      Farklı ekran tipleri için tasarım yapmak (res/ folder)


     Android dünyasında çok sayıda ve farklı boyut ve çözünürlükte ekran tipi mevcut. Bunların hepsi için ayrı ayrı tasarım yapmak mümkün değil. Temel olarak üç farklı ekran boyutunu referans alıp(small, medium, large), bunlara göre tasarımlarımızı yaptık. Bildiğiniz gibi bu ekran boyutlarının da kendi içinde farklı çözünürlük (ldpi, mdpi, hdpi, xhdpi, gibi) değerleri mevcut. Burada da yine en orta değer olan mdpi (medium) değerini baz alarak işe başladık.


     * Her ekran boyutu için res/ folder’ın altına main.xml oluşturuyoruz.

res/layout/main.xml                      -> normal (normal ekranlar için) ("default")

res/layout-small/main.xml           -> small (küçük ekranlar için)

res/layout-large/main.xml           -> large (büyük ekranlar için)


     * Ve bu yaptığımız değişikliği Manifest.xml dosyasında da tanımlıyoruz. Manifest’te <support-screen> tag ile hangi ekran tipleri için tasarım yaptığımızı belirtiyoruz.


 <supports-screens

android:largeScreens="false"

android:normalScreens="true"

android:smallScreens="true"

android:anyDensity="false" />


     Bu kodda ”true” olan değerler o ekran tipini desteklediğini; “false” olan değerlerde ise o ekran tiplerini desteklemediğini belirtmiş oluyoruz. Ayrıca  android:anyDensity="false"  değerini yazmamız gerekiyor çünkü bütün çözünürlük değerleri için değil, yukarıda belirttiğim gibi sadece mdpi çözünürlük değeri için tasarım yapmıştık. 

     Tasarım için birkaç tavsiye;

-        Eğer buton ya da eklediğiniz herhangi bir resme(öğeye) boyut tanımlamak isterseniz px(pixel) yerin e dip(device independent pixel) kullanın. Bu sayede bütün ekranlarda aynı boyutu elde etmiş olursunuz 
  
         Uygulamanızı yayınlamadan önce emulator’de farklı ekran boyutları için kendiniz deneyin. Yaptığım uygulamayı buradan deneyebilirsiniz.


     Tasarımla ilgili aklınıza takılan bir şey olursa elimden geldiğince cevaplamaya çalışacağım. Kodda çalışmayan bir yer varsa lütfen bana iletin, beraber düzeltelim.

     Bir sonraki yazıda ise ortada gösterilen -Toast’ta- yazı yerine resim (ya da png, jpg) göstermeyi anlatacağım. Görüşmek üzere.

Comments

Popular posts from this blog

Gove confirms mandatory housebuilding targets for councils will be abolished in face of Tory rebellion – UK politics live

Kotak Mahindra Bank Recruitment 2022 Released for Graduate Candidates And Apply Online