2011-02-09 12 views

Odpowiedz

28

Density może być obliczona według następującego wzoru:

Density = sqrt((wp * wp) + (hp * hp))/di 

Gdzie:

wp jest szerokość rozdzielczość w pikselach

to rozdzielczość w pikselach i

di ma przekątną w calach.

+3

Ta formuła działa dla [ppi] (http://en.wikipedia.org/wiki/Pixel_density), ale android lubi zamiast tego wyrażenie 'dpi'. Różnicę można odczytać [tutaj] (http://www.andrewdaceyphotography.com/articles/dpi/) –

+0

jaki jest przekątna w calach? – Kenji

+0

Odległość między dwiema przeciwległymi krawędziami telefonu nazywa się przekątną. – AmiNadimi

3

formuła jest rzeczywista dpi/160 (Wszystko jest skalowany do 160 DPI).

+2

Dzięki za odpowiedź, Ted. Ale jaka jest rzeczywista wartość? – teoREtik

1
int pixel = 120; 
final float scale = getResources().getDisplayMetrics().density; 
int dip = (int) (pixel* scale + 0.5f); 

przekazać ten poniższe linki

  • getDisplayMetrics(), dla obecnych wskaźników wyświetlanych
  • density, to współczynnik skalowania dla jednostki Gęstość Niezależny Pixel
+0

Wielkie dzięki, ale muszę powtórzyć moje pytanie jeszcze raz. Chcę wiedzieć, jak system operacyjny Android oblicza gęstość. W Twoim fragmencie kodu jest to wartość skali. – teoREtik

+0

Dodałem szczegóły. –

+0

Przeczytałem dokumentację o gęstości, ale nie zrozumiałem tego całkowicie. Więc chcę wiedzieć, jak to obliczyć. Dlatego właśnie ustaliłem to pytanie. – teoREtik

Powiązane problemy