Android cihazın tablet mi telefon mu olduğunu nasıl anlarız?

Ayşe Çetin —  21 Temmuz 2014 — 6 Comments

Android uygulama geliştirirken; gerek tasarım, gerekse yazılım geliştirmesi sırasında uygulamanın sınırlarını belirlemek gerekiyor. Net bir şekilde belirlenen isterler, uygulamanın geliştirme ve tasarım süresini kısaltacak ve mevcut sürenin verimli kullanılmasını sağlayacaktır.

Bir uygulamanın tablette mi telefonda mı ya da daha doğrusu hangi büyüklükteki ekrana sahip cihazlarda çalımasını istiyorsak, buna göre çeşitli ayarlamalar yapmalıyız.

Bunun için şöyle bir yöntem izleyebiliriz :

if ((getResources().getConfiguration().screenLayout &

   Configuration.SCREENLAYOUT_SIZE_MASK) ==

   Configuration.SCREENLAYOUT_SIZE_XLARGE) {

// on a xlarge screen device ...

   Log.i("screen detection", "XLARGE SCREEN");
 
}

Bu ufak kod parçacığı bize Android cihazımızın x-large ekran standartlarında olduğunu gösterir. Bunun yanında, yukarıda görünen 6. satırı

  Configuration.SCREENLAYOUT_SIZE_LARGE 

   // on a large screen device ...


    Configuration.SCREENLAYOUT_SIZE_NORMAL

   // on a normal screen device ...


   Configuration.SCREENLAYOUT_SIZE_SMALL

   // on a small screen device ...

  
   Configuration.SCREENLAYOUT_SIZE_UNDEFINED

   // on an undefined screen device ...

seçeneklerinden istediğinizle değiştirip, amaçladığınız ekran boyutunu yakalayabilirsiniz.

Hangi ekranlar large, hangileri normal gibi bir soru için şuna göz atabilirsiniz :

  • xlarge ekranlar için en az 960dp x 720dp
  • large ekranlar için en az 640dp x 480dp
  • normal ekranlar için en az 470dp x 320dp
  • small ekranlar için en az 426dp x 320dp

Ayrıca inch olarak baktığımızda :

Screen Shot 2014-07-17 at 14.38.54

Bu verilere görsellerimizin res altındaki hangi klasörden çağırılacağını da göz önünde bulundurabiliriz.

Google’ın Android geliştiricileri için olan sayfasında çoklu ekran desteğine dair yazıya şurdan ulaşabilirsiniz.

 

Afiyet olsun.

 

 

Ayşe Çetin

Posts

6 responses to Android cihazın tablet mi telefon mu olduğunu nasıl anlarız?

  1. Artik yavas yavas bir uygulamayi saat + telefon + tablet + televizyon uyumlu yapmak gerekiyor. Yada gerekecek. Bu sekilde dusununce degisik ekran boyutlarini kontrol etmek yeterli olmuyor ne yazik ki.

    Oncelikle tasarim olarak tabletlerde nasil farkliliklar yapacagimiza karar vermemiz gerekiyor.
    Diyelim kullandigimiz fragment larimiz var. Bunlari telefonda sayfa sayfa gosterirken, tablette tek ekranda gosterebiliriz. En basit ornek bu olsa gerek. Layout farkliliklarina karar verdikten sonra bu farkliliklari xml dosyasinda uyguladik diyelim.

    Basitce XML layout’a ekledigimiz parca orda var mi yok mu diye kontrol edebiliriz. Tablette bir fazlalik varsa onu `findViewById()` ile cekmeye calisalim. Eger null gelirse telefondur degilse tablettir.

    Ben bu yontemi seviyorum. Sebebi tablet odakli degil de tasarim odakli bir davranis katiyor. Yani illa bir tablet kontrolune gerek birakmiyor. Dusundugumuz zaman cunku tabletler cok cesitli. 7, 8, 10, 12, hatta 20 inch den buyuk tabletler var. Sadece tablet mi degil mi diye kontrol edersek bunlarin hepsini ayni kefeye koymus oluyoruz.

    • Yaklaşımınız haklı ve doğrudur, bana gerekli olan spesifik olarak ekran boyutu handle etmem olduğu için bu yöntemi kullandım.
      Her yerde çalışacak (tablet-telefon-wearable) bir uygulama için farklı tasarımlar ve bunların yönetimi gerekli tabii.

      • Cihaz tablet mi degil mi diye kontrol etmek icin yazida anlattigin zaten guzel bir yontem. Nasil bir sey icin kullandin onu merak ettim. Sakincasi yoksa paylasabilir misin?

  2. Uygulamamızı Google Play’de sunmaya karar verdiğimizde 10 inch tabletler haricinde çalışmasının engellenmesi istendi.Telefonlarda kullanımını engellemek için ile böyle bir yol izledim.

  3. bu konuda Jquery’nin de desteği vardı,hatta tarayıcının sürüm numarasına kadar..
    http://www.kodadiyazilimci.com

  4. “Use the Smallest-width Qualifier
    One of the difficulties developers had in pre-3.2 Android devices was the “large” screen size bin, which encompasses the Dell Streak, the original Galaxy Tab, and 7″ tablets in general. However, many applications may want to show different layouts for different devices in this category (such as for 5″ and 7″ devices), even though they are all considered to be “large” screens. That’s why Android introduced the “Smallest-width” qualifier (amongst others) in Android 3.2.”

    http://stackoverflow.com/questions/9279111/determine-if-the-device-is-a-smartphone-or-tablet

tasomaniac için bir cevap yazın Cevabı iptal et