Şimdi Ara

Android Çoklu ekran boyutu için çalışma problemi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
7
Cevap
0
Favori
3.384
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar,

    1024 * 768 1 density bir ekran için yapılan uygulama tasarımı, 640 x 400 0,75 density ekrana oturmuyor. Çünkü Android layout dosyasındaki herşeyi density değeriyle çarpıyor. Runtime da oluşturulan görselleri density değerine bölerek bunun önüne geçiyorum fakat xml dosyasında oluşturulanları tek tek yeniden boyutlandırmam gerekiyor bunu yapabilmem için. Buda açılışta performans yönünden oldukça kötü etkiliyor. anydensity özelliğini false yaptığımda ise density değerini 1 alıyor ve anlamsız bir şekilde 1280 ve 800 sayısını density değeriyle çarpıyor ve ekran yükselik ve genişliğini bu rakamlara set ediyor. 2 density olan bir ekranda doğal olarak tasarım tasarım iki kat büyüyor.

    anydensity = false yapınca density değerini hep 1 alıyor. Ama kendi içinde işlem yapıyor. Mesela density 2 ise cihazın 1024px genişliğinde bir resmi 2048 px yapıyor. Şimdi ben bu resmin genişliğini alıp density değerine böldüğümde ekrana tam oturtuyorum fakat anydensity false olduğu için runtime da bana density değerini 1 veriyor.


    Bu problemin çözümü nedir arkadaşlar?



    < Bu mesaj bu kişi tarafından değiştirildi samplus -- 18 Kasım 2012; 0:07:12 >







  • boyutları px cinsinden vererek androidin density değeriyle çarpmasının önüne geçtim.

    Fakat buda olmadı. Screen size mı küçülüyor anlamadım ki.fill_parent verince yine ekran 0.25 oranında açık kalıyor.



    < Bu mesaj bu kişi tarafından değiştirildi samplus -- 17 Kasım 2012; 15:37:49 >
  • evet arkadaşlar Android sanırım bu çarpma bölme işlemlerini ben tüm boyutları ayarladıktan sonra yapıyor. Yani ben onun 0,75 ile çarptığı değerleri 0,75 e ne kadar bölsemde kar etmiyor.

    Bunu ancak her çözünürlük için ayrı ayrı layout dosyası oluşturduktan sonra birde her çözünürlük için ayrı ayrı density lerde layout dosyaları hazırlayarak çözebileceğimi düşünüyorum.

    Toplamda 8 farklı çözünürlük için hazırlayacağım layout dosyalarını her çözünürlük içinde ayrı ayrı 4 density değeri için tekrar hesap yapıp dosya hazırlayacağım. toplamda 32 layout dosyası olacak uygulamanın. Herkes böyle mi yapıyor anlamadım ki? Bunun bir yolu vardır diye düşünüyorum.
  • hocam ayrı ayrı layoutlar hazırladıktan sonra ne yapmam gerekiyor androidin layoutlarımı tanıması için
  • quote:

    Orijinalden alıntı: kurnaz5

    hocam ayrı ayrı layoutlar hazırladıktan sonra ne yapmam gerekiyor androidin layoutlarımı tanıması için

    ayrı ayrı layout lar hazırlama işin içinden çıkamazsın onlarca çözünürlük varyasyonu var. Çözünürlüğe göre her item' i yeniden boyutla yalnız burada density değerini hesaba katmaman gereken durumlar olacak.

    Mesela diyelim ilk çalıştığın tasarım 1280 * 800 için. böyle bir durumda. Uygulamanın çalışacağı ekran genişliğini al

    DisplayMetrics metrics = new DisplayMetrics()
    windowWidth = metrics.widthPixels

    Sonra nesnenin genişliği ile yeni değerini hesapla yani olması gerekeni.

    deger = (windowWidth * genislik) / 1280

    bu verdiğim örnek sadece genişlik için. Yükseliğide aynı şekilde hesaplayıp yeniden boyutlayabilirsin.

    yani

    deger = (windowHeight * yukseklik) / 800

    Ben böyle bir çözüm ürettim tüm ekran çözünürlüklerinde aynı görüntüyü elde edebilmek için. Bundan daha kısa bir yol gelmedi aklıma. Bir method yazıp her nesne için parametre gönderip hızlı bir şekilde hepsini halledebilirsin. Bu arada çıkan sonucu density değerine bölmen gerekir.



    < Bu mesaj bu kişi tarafından değiştirildi samplus -- 7 Haziran 2013; 20:13:11 >




  • mesela bi button için bunu nasıl yapabilirz
    ben tablet için 2.5 la çarpıyordum
  • dimens kullanın
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.