2012-02-13 9 views
9

Chcę wiedzieć, który zasób losowy jest używany podczas uruchamiania aplikacji, która jest albo z ldpi, mdpi, hdpi lub xhdpi.Jak sprawdzić, który zasób losowy jest używany?

+0

[Wystarczy popatrzeć na ten post] (http://stackoverflow.com/a/4766229/593709) –

+0

skończyło się na tworzeniu aplikacji dla że jakiś czas temu: https://play.google. com/store/apps/details? id = com.roysolberg.android.developertools –

Odpowiedz

7

Powinieneś być w stanie uzyskać właściwości ekranu Twojego urządzenia, jak opisano here a następnie określić, jakie zasoby są wykorzystywane w czasie wykonywania przez porównanie wyniku przeciwko tej listy:

  • ldpi: ekranami o niskiej gęstości; około 120dpi.
  • mdpi: ekrany średnio-zagłębione (na tradycyjnych ekranach HVGA); około 160dpi.
  • hdpi: Ekrany o wysokiej gęstości; około 240dpi.
  • xhdpi: Ekrany o wysokiej gęstości; około 320dpi. Dodano w API Level 8
  • nodpi: To może być użyte dla zasobów mapy bitowej, których nie chcesz przeskalowywać w celu dopasowania do gęstości urządzenia.
  • tvdpi: Ekrany gdzieś pomiędzy mdpi i hdpi; około 213dpi. Nie jest to uważane za "podstawową" grupę gęstości. Przeważnie jest przeznaczony do telewizorów i większość aplikacji nie powinna tego potrzebować - zapewnienie zasobów mdpi i hdpi jest wystarczające dla większości aplikacji, a system odpowiednio je skaluje. Ten kwalifikator został wprowadzony z poziomu API 13.

Na podstawie tych informacji można wywnioskować następujące dane, które mogą być również istotne dla zapytanie:

Jest 3: 4: 6: 8 skalowanie stosunek między czterema pierwotnymi gęstościami (ignorując gęstość tvdpi). Tak więc mapa bitowa 9x9 w formacie ldpi to 12x12 w mdpi, 18x18 w formacie hdpi i 24 x 24 w formacie xhdpi.

1

To nie jest dokładną odpowiedź, ale czy podjęte okiem na: http://developer.android.com/guide/practices/screens_support.html

ldpi: Zasoby dla małej gęstości (ldpi) Ekrany (~ 120 DPI)
MDPI: zasoby do średniej gęstości (MDPI) ekrany (~ 160dpi)
hdpi: zasoby o wysokiej gęstości (hdpi) ekrany (~ 240dpi)
xhdpi: zasoby do bardzo wysokiej gęstości (xhdpi) ekranów (~ 320dpi)

są to ogólne wytyczne, i nie będzie idealnie, ale to całkiem dobry początek.

4

Możemy to ustalić, znając gęstość ekranu urządzenia.

getResources().getDisplayMetrics().densityDpi 

Będzie to albo DENSITY_LOW, DENSITY_MEDIUM, albo DENSITY_HIGH.

1

Otwórz plik xml z folderu układu. W dolnej części znajduje się zakładka układu graficznego. Tam będziesz mógł zobaczyć graficzny widok twojego pliku xml. W lewym górnym rogu wybierz inną rozdzielczość, dla której chcesz przetestować ciągnięcie. Odświeży to widok odpowiednio.

0

Oto przykładowy kod, który można znaleźć. Po prostu umieść różne rysunki w różnych folderach i sprawdź, który obraz jest automatycznie pobierany przez urządzenie.

http://droidschools.com/archives/63

3

Musisz najpierw uzyskać gęstość urządzeniu.

int density= getResources().getDisplayMetrics().densityDpi; 

switch(density) 
{ 
case DisplayMetrics.DENSITY_LOW: 
    Toast.makeText(context, "LDPI", Toast.LENGTH_SHORT).show(); 
    break; 
case DisplayMetrics.DENSITY_MEDIUM: 
    Toast.makeText(context, "MDPI", Toast.LENGTH_SHORT).show(); 
    break; 
case DisplayMetrics.DENSITY_HIGH: 
    Toast.makeText(context, "HDPI", Toast.LENGTH_SHORT).show(); 
    break; 
case DisplayMetrics.DENSITY_XHIGH: 
    Toast.makeText(context, "XHDPI", Toast.LENGTH_SHORT).show(); 
    break; 
} 
Powiązane problemy