Czy potrzebuję 14 różnych układów, aby obsługiwać wszystkie urządzenia z Androidem?

Naprawdę czuję się zdezorientowana. Z docs at developer.android.com wydaje się, że aby moje obrazy były skalowane poprawnie (proporcje też) na wszystkich obecnych urządzeniach z Androidem, potrzebuję wszystkich tych układów poniżej. Naprawdę wszyscy tak robią? Czy coś przeoczyłem, czy powinienem to zrobić w inny sposób?

Low density Small screens QVGA 240x320
------------------------------------------------
layout-small-ldpi
layout-small-land-ldpi

Low density Normal screens WVGA400 240x400 (x432)
------------------------------------------------
layout-ldpi
layout-land-ldpi

Medium density Normal screens HVGA 320x480
------------------------------------------------
layout-mdpi
layout-land-mdpi

Medium density Large screens HVGA 320x480
------------------------------------------------
layout-large-mdpi
layout-large-land-mdpi

High density Normal screens WVGA800 480x800 (x854)
------------------------------------------------
layout-hdpi
layout-land-hdpi

Xoom (medium density large but 1280x800 res)
------------------------------------------------
layout-xlarge
layout-xlarge-land
Author: LOG_TAG, 2011-04-06

4 answers

Twoja aplikacja będzie działać na 100% urządzeń z klasycznym układem.

Możesz po prostu dodać kilka przycisków lub zmienić układ w trybie poziomym, dodając kilka kwalifikatorów, ale to zależy od Ciebie!

Na przykład, na urządzeniu LDPI (small resolution), możesz dostosować niektóre przyciski lub zmienić trochę, aby dopasować mały ekran.

Możesz również umieścić kilka przycisków po prawej stronie w trybie poziomym i u dołu układu w pionie!

Nie "trzeba" ich użyć.

 23
Author: Waza_Be,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-07 21:50:48

Według Androida Dev Protip od Romana Nurika o rozmiarach ekranu:

Jeśli masz niestandardowe układy dla większych urządzeń ekranowych, takich jak tablety, nadszedł czas, aby przestać używać kwalifikatora zasobów - large lub-xlarge i przełącz na kwalifikatory -swXXdp lub-wXXdp. Te ostatnie były wprowadzony w API level 13 , który w zasadzie wszystkie tablety mają teraz obsługa Wykresów w najnowszej wersji platformy1.

Oznacza, że w zasadzie dla wszystkich przypadków, w których-large miałoby jakikolwiek wpływ, - swXXdp może być użyty zamiast tego, aby zapewnić większą ziarnistość.

Więc jakich rzeczywistych kwalifikatorów sw lub w powinieneś użyć? Oto szybki just-give-me-something starting point:

7" tablety: zamiast layout-large, użyj layout-sw600dp.

Przykład: Nexus 7 = 960×600 dp; mniejszy z dwóch wymiarów to 600.

10" tabletki: Zamiast layout-xlarge, użyj layout-sw720dp.

Przykład: Nexus 10 = 1280×800 dp; mniejszy z dwóch wymiarów to 800. Niektóre Tablety 10" są nieco węższe, więc 720 jest powszechnie stosowanym punktem przełączania.

Jest w tym coś więcej niż tylko to (naprawdę chcesz wybrać przełączanie punkty oparte na minimalnych wymaganiach zawartości, a nie na urządzeniu form factor), ale to #Protip na kolejny dzień (:: kaszel:: + Nick Rzeźnik :: kaszel::)

 7
Author: LOG_TAG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-13 07:05:31

W układzie jeśli nie używasz AbsoluteLayout, aplikacja zostanie zmieniona tak, aby pasowała do ekranu.

Ale w niektórych przypadkach, dla mniejszych ekranów trzeba zadeklarować nowy układ z mniej komponentów na przykład.

Dla zdjęć:

Masz kilka opcji.

Po prostu zignoruj niektóre rozdzielczości i pozwól urządzeniu wybrać najlepszy obraz do niego. Zadeklarować na AndroidManifest dla których rozmiary chcesz obsługiwać. Lub ma tylko jeden i niech zmiana rozmiaru śruby podanie.

 2
Author: Marcos Vasconcelos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-05 21:15:47

Tak. Należy zdefiniować inny układ dla różnych rozdzielczości ekranu.

Kiedy ma się pracować z aplikacją typu tablet. Tym razem naprawdę to czujesz. Istnieje potrzeba innego układu. Ponieważ tabletki zawsze są w innym rozmiarze.

Jeszcze jedno, gdy pracujesz na Androidzie, oznacza, że zawsze powinieneś spróbować swojej aplikacji z prawdziwym urządzeniem. A także przetestować za pomocą emulatorów o różnych rozmiarach.

 0
Author: shivaprakash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-28 17:08:28