Wszystkie różne rozdzielczości różnych produktów systemu Android doprowadzają mnie do szału.Jak obsługiwać różne rozdzielczości produktów z Androidem?
Moja pierwsza aplikacja na Androida, którą napisałem, została zaprojektowana tak, aby obsługiwała trzy najczęściej używane rozdzielczości: 240 x 320 (LDPI), 320 x 480 (MDPI) i 480 x 800 (HDPI). Format 480x854 nie zaszkodził układowi, ponieważ ma on tę samą szerokość co 480 x 800.
Ja również zakupione następujące urządzenia do testowania Moje aplikacje Android na: Samsung Galaxy Europie (LDPI) HTC Desire Z (HDPI)
szczęście moja dziewczyna ma HTC Wildfire S (MDPI), więc Większość rezolucji została omówiona.
Ale dziś mój brat pobrał moją aplikację na swoim nowym HTC Sensation, który ma jeszcze inną rozdzielczość 540x960 (HDPI?). Które nie wyświetlały mojej aplikacji tak, jak powinno i prawdopodobnie większość tabletów nie wyświetli jej poprawnie.
Co ja zrobiłem z moim pierwszym app został odczytany gęstość, a następnie ustawić parametry:
public void set_ui_parameters() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
if(metrics.densityDpi == DisplayMetrics.DENSITY_HIGH){
textSize = 35;
timeWidth = 80;
dayWidth = 110;
moneyWidth = 50;
} else if(metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM){
textSize = 35;
timeWidth = 53;
dayWidth = 73;
moneyWidth = 33;
} else if(metrics.densityDpi == DisplayMetrics.DENSITY_LOW){
textSize = 28;
timeWidth = 40;
dayWidth = 55;
moneyWidth = 25;
}
}
Poza parametrami Ja również tworzonych kanału alfa dla LDPI, MDPI i HDPI. Działa to dobrze dla rozdzielczości opisanych powyżej, ale zależy to od rozdzielczości ekranu i.c.w. rozmiar ekranu i kończy się niepowodzeniem, na przykład HTC sensatoin z 540x960.
Wiem, że nie wszystkie rezolucje są używane tak często, ale chciałbym wesprzeć jak najwięcej osób. Stats of Screen Sizes and Densities
Wiele razy czytałem Supporting Multiple Screens, ale nie znalazłem jednoznacznej odpowiedzi na ten "problem".
Czy powinienem więc odczytać rozdzielczość i ustawić parametry zgodnie z rozdzielczością zamiast gęstością? Czy to jest mądra rzecz, czy jak sobie z tym radzisz?
Wielkie dzięki za informacje!
Dzięki tym wartościom jest bardzo użyteczny, ale nie rozwiązuje to problemu z rozdzielczością 540x960 lub jestem w błędzie. Ponieważ SQRT (540^2 + 960^2) /4,3 = 256,15 (HTC Sensation) jest mniej więcej taki sam jak SQRT (480^2 + 800^2)/3,7 = 252,15 (HTC Desire Z) i oba będą być indeksowane jako HDPI, gdzie ekran sensacji jest szerszy o 60 pikseli. – patrick
Tak ... Problem polega na tym, że nie będziesz w stanie obsłużyć 100% rozmiarów ekranu. Na przykład ... jeśli chcesz, aby widok tekstowy obejmował dokładnie szerokość ekranów, nawet jeśli zastosujesz wszystkie możliwe techniki, pojawi się kilka urządzeń, które zawiną tekst lub coś takiego. Chodzi mi o to, że nie możesz sprawić, by wyglądała dokładnie tak, jak chcesz na wszystkich urządzeniach ... musisz się dostosować, aby wyglądała jak najlepiej. – Cristian