2010-12-23 13 views

cevap

11

. Dip, px ve dpi arasındaki ilişkiler this bölümüyle kaplıdır.

Alıntı:

Yoğunluk bağımsız piksel (dp) uygulamaları bir yoğunluğa bağımsız bir şekilde düzen boyutları veya konumunu ifade etmek, onların UI tanımlamada kullanabilir

sanal bir piksel birimi .

yoğunluktan bağımsız piksel 160 dpi ekranda bir fiziksel piksel, (bu belgede daha sonra tarif edildiği gibi) bir platform tarafından kabul taban yoğunluğuna eşdeğerdir. Çalışma zamanında, platformu şeffaf kullanımda ekranın gerçek yoğunluğuna dayalı gerekli dp birimlerinin herhangi ölçeklendirme, yönetir. Dp birimlerinin ekran piksellerine dönüşümü basittir: piksel = dps * (yoğunluk/160). Örneğin, 240 dpi ekranda 1 dp, 1,5 fiziksel piksele eşittir. için dp birimleri kullanarak farklı ekranlarda UI düzgün görüntü sağlamanın bir yolu olarak, uygulamanızın UI son derece önerilir tanımlar.

Yani deyim: daima

hdpi

kadar 18px MDPI içinde 12px ve olmak

docs göre, doğru gibi görünüyor.

+0

Anladığım kadarıyla, ekran 160dip ise 12px mdpi'de yalnızca 12px olacaktır. mdpi geniş bir orta çözünürlüklü cihaz yelpazesidir. – CodyBugstein

4

12dp yoğunluğu 160 dpi olan bir cihazda 12 pikselden edilecektir. Dokümanlar, tüm mdpi cihazlarının tam olarak 160 dpi olduğunu söylemez, böylece diğer yoğunluklara sahip (örn. 150 veya 180 dpi) mdpi cihazlarını bulabilirsiniz. Bu durumlarda, 1dp = 1px ilişkisi doğru olmaz.

Yalnızca bu ilişkinin emin olabiliriz: 320/160 Ben 2 olduğunu söyleyebilirim 2. olduğundan, bir cihaz 320 dpi bir yoğunluk daha sonra her dp 2 px tekabül vardır

px = dp * (dpi/160) 

ise "Yoğunluk faktörü", ama aynı zamanda getResources().getDisplayMetrics().density ile aldığınız şeydir, bu yüzden "yoğunluk" olarak da adlandırılır.