Czy ktoś może mi powiedzieć, w jaki sposób Android liczy gęstość ekranu?Obliczanie gęstości ekranu Androida:
Mój problem jest mieć urządzenie (ODYS spacja) o rozdzielczości 480x800 oraz z 7" przekątnej ekranu. Gdybym oblicz jego gęstość uzyskać wartość 133 DPI ale Android (2.2 i 2.3 zbyt) informuje go jak „średni "Gęstość urządzenia (160 DPI)
Walczę z obsługą wielu ekranów, więc przypuszczam, że 133 DPI będzie raczej zgłaszane jako" NISKI "niż" ŚREDNI ", więc teraz mój układ ekranu wygląda dość głupio na tym medium zgłoszonym urządzeniu.
sprawdzić urządzenie z kodem tak:
DisplayMetrics dMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dMetrics);
int d=dMetrics.densityDpi;
Jeśli uruchomię ten kod na skonfigurowanym urządzeniu wirtualnym (480x800/7 "i 133 DPI), wówczas otrzymam gęstość = 120.
Na prawdziwym urządzeniu dlaczego zamiast tego mówi się po 160?
Jeśli szukasz nagrody, zobacz odpowiedź Petera O. i mój komentarz poniżej. Główną kwestią jest to, w jaki sposób Android oblicza gęstość, a nie w jaki sposób pobiera ustawienia. Na przykład, gdzie jest granica między LDPI i MDPI, MDPI i HDPI, i tak dalej ... dlaczego dana liczba jest zaokrąglana do górnej gęstości, a nie do niższej sąsiadującej gęstości, i tak dalej. Ponownie, podpowiedź odpowiedzi można zobaczyć w Edytorze urządzeń AVD, ale jak dotąd nie udało mi się znaleźć deterministycznej, pewnej, poprawnej odpowiedzi. – davidcesarino
DPI - urządzenie niezależne pikseli nie może mieć wartości własnych, ponieważ istnieje starndards 0,75 - ldpi - 120 dpi 1,0 - MDPI - 160 dpi 1,5 - hdpi - 240 dpi 2,0 - xhdpi - 320 dpi 3,0 - xxhdpi - 480 dpi 4,0 - xxxhdpi - 640 dpi –