Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
3401
Tıklama
0
Öne Çıkarma
Android Çoklu ekran boyutu için çalışma problemi
S
13 yıl
Yarbay
Konu Sahibi

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?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





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

S
13 yıl
Yarbay
Konu Sahibi

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 >
Bu mesaja 1 cevap geldi.
S
13 yıl
Yarbay
Konu Sahibi

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.



K
12 yıl
Onbaşı

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


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @samplus
S
12 yıl
Yarbay
Konu Sahibi

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 >
Bu mesaja 1 cevap geldi.
K
12 yıl
Onbaşı

mesela bi button için bunu nasıl yapabilirz
ben tablet için 2.5 la çarpıyordum


Bu mesaja 1 cevap geldi.
O
12 yıl
Yüzbaşı

dimens kullanın



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.