Android: rozmiar obrazu tła (w pikselach), który obsługuje wszystkie urządzenia


114

Tworzę aplikację, która będzie działać na wszystkich urządzeniach z systemem Android. Chcę utworzyć grafikę xhdpi dla mojej aplikacji. Moja aplikacja działa na pełnym ekranie. Jestem zdezorientowany w tworzeniu grafiki. Czy ktoś może mi powiedzieć najlepsze rozmiary mojego obrazu tła w pikselach.

Na przykład:

  • xhdpi: 720x1280 pikseli
  • hdpi: 480x800 pikseli
  • mdpi: 320x480 pikseli
  • ldpi: 240x320 pikseli

Zaproponuj mi najlepsze rozmiary, które pojawią się na wszystkich urządzeniach dobrze. Ponieważ moja grafika jest rdzeniem mojej aplikacji.

Chcę, aby każde urządzenie miało najlepszy obraz, jakiego potrzebuje. Android nie będzie zajmował się kompresją ani rozszerzaniem obrazu.


3
Przeczytaj Obsługę wielu ekranów w Android Documentation w Androidzie, zapewniają one standard interfejsu użytkownika
RajeshVijayakumar

Użyj tego jednego rozwiązania, które jest najlepsze dla wszystkich starych i nowych oraz nadchodzących urządzeń. stackoverflow.com/a/40255870/2489061
Umer

Odpowiedzi:


199

Poniżej przedstawiono najlepsze wymiary aplikacji do działania na wszystkich urządzeniach. Aby zrozumieć wiele ekranów pomocniczych, musisz przeczytać http://developer.android.com/guide/practices/screens_support.html

xxxhdpi: 1280x1920 px
xxhdpi: 960x1600 px
xhdpi: 640x960 px
hdpi: 480x800 px
mdpi: 320x480 px
ldpi: 240x320 px

10
XX powinno być 2x HDPI
LarryBud,

1
ciekawe, Nexus 5 ma rozmiar xxhdpi, ale ma rozmiar ekranu 1080x1920
Roman

3
LG G3 ma rozdzielczość 1440 x 2560 i wykorzystuje xxxhdpi.
Roel

1
To jest główny problem / wyzwanie z Androidem, nie ma ustalonego rozmiaru dla hdpi, xhdpi itp., Ponieważ każdy producent może wyprodukować telefon / tablet o innym rozmiarze, w przeciwieństwie do IOS, gdzie robi to tylko jabłko. Zajrzyj do sekcji dotyczącej zakresu: developer.android.com/guide/practices/ ...
toidiu

Użyj tego jednego rozwiązania, które jest najlepsze dla wszystkich starych i nowych oraz nadchodzących urządzeń. stackoverflow.com/a/40255870/2489061
Umer

63

Macierze urządzeń z systemem Android

                            ldpi     mdpi     hdpi    xhdpi    xxhdpi      xxxhdpi
Launcher And Home           36*36    48*48   72*72    96*96    144*144     192*192
Toolbar And Tab             24*24    32*32   48*48    64*64    96*96       128*128
Notification                18*18    24*24   36*36    48*48    72*72       96*96 
Background                 240*320  320*480 480*800  768*1280  1080 *1920  1440*2560 

(Dla dobrego podejścia bez rozmiaru paska narzędzi Od całkowitej wysokości ekranu tła, a następnie projektowania grafiki ekranów)

Aby uzyskać dodatkową pomoc (to łącze obejmuje również tablety):

https://design.google.com/devices/

Natywne ikony systemu Android (zalecane) Kolor tych ikon można zmieniać programowo . https://design.google.com/icons/


Dlaczego tezy nie pokrywają się z proponowanymi tutaj mnożnikami? developer.android.com/training/multiscreen/screendensities#java
Ben,


5

Rozejrzałem się po Internecie w poszukiwaniu prawidłowych wymiarów dla tych gęstości dla kwadratowych obrazów, ale nie mogłem znaleźć niczego wiarygodnego.

Jeśli to jakieś pocieszenie, odwołując się do odpowiedzi Veerababu Medisettiego, użyłam tych wymiarów do KWADRATÓW :)

xxxhdpi: 1280x1280 px
xxhdpi: 960x960 px
xhdpi: 640x640 px
hdpi: 480x480 px
mdpi: 320x320 px
ldpi: 240x240 px

Użyj tego jednego rozwiązania, które jest najlepsze dla wszystkich starych i nowych oraz nadchodzących urządzeń. stackoverflow.com/a/40255870/2489061
Umer

4

Narzędzie GIMP jest dokładnie tym, czego potrzebujesz do tworzenia obrazów dla różnych urządzeń o rozdzielczości pikseli.

Wykonaj następujące kroki:

  1. Otwórz istniejący obraz w narzędziu GIMP.
  2. Przejdź do menu „Obraz” i wybierz „Skaluj obraz ...”
  3. Użyj poniżej potrzebnego wymiaru w pikselach:

    xxxhdpi: 1280x1920 pikseli

    xxhdpi: 960x1600 pikseli

    xhdpi: 640x960 pikseli

    hdpi: 480x800 pikseli

    mdpi: 320x480 pikseli

    ldpi: 240x320 pikseli

  4. Następnie „Eksportuj” obraz z menu „Plik”.


3

Rozumiem, że jeśli używasz Viewobiektu (jak przypuszczano np. android:windowBackground), Android automatycznie przeskaluje twój obraz do odpowiedniego rozmiaru. Problem polega na tym, że zbyt duże skalowanie może powodować artefakty (zarówno podczas skalowania w górę, jak iw dół) i rozmycie. Ze względu na różne rozdzielczości i współczynniki aspektów na rynku niemożliwe jest stworzenie „idealnego” dopasowania do każdego ekranu, ale możesz zrobić wszystko, co w Twojej mocy, aby wykonać tylko niewielkie skalowanie, a tym samym złagodzić niepożądane skutki uboczne . Więc co bym zrobił to:

  • Zachowaj współczynnik skalowania 3: 4: 6: 8: 12: 16 między sześcioma uogólnionymi gęstościami (ldpi, mdpi, hdpi itp.).
  • Nie powinieneś dołączać elementów xxxhdpi do elementów UI, ta rozdzielczość jest przeznaczona tylko do skalowania ikon programu uruchamiającego (więc tylko folder mipmap ) ... Nie powinieneś używać kwalifikatora xxxhdpi dla elementów UI innych niż ikona programu uruchamiającego. ... chociaż np. na Samsung Edge 7 wywołanie getDisplayMetrics().densityzwraca 4 (xxxhdpi), więc być może ta informacja jest nieaktualna.
  • Następnie spójrz na nowe modele telefonów na rynku i znajdź reprezentatywne. Zakładając, że nowy piksel Google jest dobrą reprezentacją telefonu z Androidem: ma rozdzielczość 1080 x 1920 przy 441 dpi i rozmiar ekranu 4,4 x 2,5 cala . Następnie z dokumentacji programisty Androida :

    • ldpi (niska) ~ 120 dpi
    • mdpi (średni) ~ 160dpi
    • hdpi (wysoka) ~ 240 dpi
    • xhdpi (bardzo wysoka) ~ 320 dpi
    • xxhdpi (extra-extra-high) ~ 480dpi
    • xxxhdpi (extra-extra-extra-high) ~ 640dpi

    Odpowiada to xxhdpiekranowi. Stąd mogłem zmniejszyć te 1080 x 1920 o powyższe współczynniki (3: 4: 6: 8: 12).

  • Mogę również przyznać, że próbkowanie w dół jest ogólnie łatwym sposobem skalowania, dlatego chciałbym, aby w moim apk były zawarte nieco przewymiarowane mapy bitowe (uwaga: większe zużycie pamięci). Ponownie zakładając, że szerokość i wysokość piksela jest reprezentatywna, przeskalowałbym 1080x1920 o współczynnik 480/441, zostawiając obraz tła w maksymalnej rozdzielczości na poziomie ok. 1200x2100, który powinien być następnie przeskalowany w proporcji 3: 4: 6: 8: 12.
  • Pamiętaj, że musisz dostarczyć elementy rysunkowe specyficzne dla gęstości dla plików bitmap (.png, .jpg lub .gif) i plików dziewięciu poprawek (.9.png). Jeśli używasz plików XML do definiowania zasobów do rysowania (np. Kształtów), po prostu umieść jedną kopię w domyślnym katalogu do rysowania.
  • Jeśli kiedykolwiek będziesz musiał pomieścić naprawdę duże lub dziwne proporcje, utwórz również dla nich określone foldery, używając do tego flag, np. sw, long, large, Itd.
  • I nie ma potrzeby dwukrotnego rysowania tła. Dlatego ustaw styl za pomocą<item name="android:windowBackground">@null</item>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.