Szkielet aplikacji obsługujący wiele ekranów

Jak wiemy Android pochodzi z różnych urządzeń, które mają różne Funkcji, rozdzielczości i wielkości ekranu, więc podczas tworzenia aplikacji obsługującej wiele (mały i duży) ekran jest przeszkodą wielkości i układu.

Prowadzi to do różnych kombinacji rozmiarów ekranu, rozdzielczości i DPIs i stwarza spore wyzwanie podczas projektowania i rozwijania urządzeń z systemem Android. Podczas gdy niektórzy inni producenci (Nie Android) mają różne rozdzielczości i DPI, to Udostępnij ten sam rozmiar ekranu, a rozdzielczości mają ten sam współczynnik proporcji. Dlatego można utworzyć obraz pasujący do urządzeń innych niż Android.

Moje pytanie brzmi, czy istnieje odpowiedni przepływ lub Architektura, którą należy podążać, aby spełnić wymagania?

Tutaj wpisz opis obrazka

pamiętaj, że mamy Tablety o różnej wielkości i rozdzielczości.

Wiem, że Android Developer zawiera te informacje, ale moim zdaniem jest z wdrożenie.

Z mojej wiedzy zrozumiałem, że do projektowania grafiki na Androida nawet programista musi znać koncepcję projektowania.

Author: Azhar Shaikh, 2012-09-03

2 answers

Wreszcie stworzono strukturę, która obsługuje układy i ikony dla wielu ekranów.

[[23]} Android uogólnia wyświetlanie urządzeń na kategorie na podstawie dwóch parametrów: [24]}
    W 1995 roku w Polsce wprowadzono do obiegu nowe modele samochodów.]} W 1990 roku w Polsce wprowadzono do obiegu nowe modele samochodów, które były używane do produkcji samochodów osobowych i dostawczych.]}

Aby szybko określić rozmiar i gęstość ekranu, zainstaluj aplikację " What ' s my Size " na Androida.

Rozmiar ekranu

Android definiuje cztery ogólne rozmiary ekranu:


 Qualifier           Size

 small               ~3 inches (approx) 
 normal              ~4 inches (approx) 
 large               Exceeds 4 inches    
 xlarge              Exceeds 7 inches  
  • większość telefonów jest klasyfikowana jako małe lub normalne (około 3 do 4 cali po przekątnej). Ale teraz istnieje wiele telefonów z dużym ekranem, takich jak Galaxy S4, HTC One, Xperia z
  • Samsung Galaxy Tab jest jednym z najbardziej popularnych tabletów na świecie.]}
  • Extra-large dotyczy dużych urządzeń, na przykład dużych tabletów

Android definiuje cztery uogólnione gęstości ekranu:


 Qualifier         Description         Nominal value

 ldpi              low density          120 ppi
 mdpi              medium density       160 ppi
 hdpi              high density         240 ppi
 xhdpi             extra high density   320 ppi

Typowo:

    Rozmiar ekranu ma największy wpływ na Układy aplikacji]}
  • gęstość ekranu ma największy wpływ na obraz i zasoby graficzne

To jest wymienione tutaj różnica procentowa ekranu urządzenia

  • Ldpi-75%
  • [[28]}Mdpi-100% (baza według Android developer site)
  • Hdpi - 150%
  • XHdpi- 200%

Tutaj wpisz opis obrazka

Ale jak wiemy obecnie większość urządzeń pochodzi z 480X800 więc uznaję to za urządzenie oparte, więc nasze nowe obliczenia będą takie]}

  • Ldpi-50%
  • Mdpi-66,67%
  • Hdpi - 100%
  • XHdpi-133.33%

Co oznacza, że Pierwsza ikona i projekt będą tworzone tylko dla 480X800, a następnie dla pozostałych (np. Ldpi, Mdpi, Xhdpi).

Istnieją obrazy, które są wspólne dla wszystkie układy i muszą być jednolite w kolorze i kształcie (bez złożonego kształtu, bez krzywej), więc dla tego rodzaju obrazu tworzymy 9patch, które należy umieścić w folderze" drawable (no-sufiks)". Aby utworzyć obraz 9Patch możesz użyć DrawNinePatch lub BetterNinePatch

Teraz po prostu zmień nazwę swoich obrazów w oparciu o standardy Androida i uzupełnij aplikację hdpi, a następnie wybierz drawable-hdpi folder i otwórz Adode Photoshop (zalecane) Utwórz działanie wielokrotnego rozmiaru (wystarczy zmienić rozmiar zgodnie ze stosunkiem procentowym) po utworzeniu akcji dla wszystkich rozmiarów, a następnie po prostu zrób Batch Automate i podać źródło (drawable-hdpi) i miejsce docelowe (drawable-ldpi, drawable-mdpi, drawable-xdpi).

Powodem, dla którego nalegam, aby używać Photoshopa, ponieważ automatycznie zmieni rozmiar obrazu z działaniami i jeszcze jeden plus punkt jest to, że nie trzeba zmieniać nazwy pliku(będzie przypisać tę samą nazwę co oryginał jeden).

Po zakończeniu tworzenia wszystkich obrazów, Odśwież swój projekt i przetestuj go.

Czasami istnieje możliwość, że układ obsługujący ekran(xhdpi, hdpi, mdpi) może być wycięty na małym ekranie(LDPI), więc do obsługi tego wystarczy utworzyć osobny folder układu(layout-small) i dodać ScrollView(głównie). To wszystko.

Tabletka Tabletki są podzielone na dwa rozmiary.

  1. 7 " (1024x (600-48 (pasek nawigacji))) = 1024x552 (drawable-large)
  2. 10"(1280x (800-48 (pasek nawigacji))) = 1280x752 (drawable-xlarge)

W tym musimy stworzyć obraz zarówno dla ekranu i po prostu umieścić je odpowiednio

Więc w sumie będziemy mieć ten folder w naszej aplikacji do obsługi wielu ekranów.

drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-large
drawable-xlarge

będzie bardziej kwalifikacyjna kombinacja z Screen size and Screen density

drawable-large-ldpi
drawable-large-mdpi
drawable-large-hdpi
drawable-large-xhdpi

więcej kwalifikacji z Screen density and Version

drawable-ldpi-v11
drawable-mdpi-v11
drawable-hdpi-v11
drawable-xhdpi-v11

i Więcej z Screen size and Version

drawable-large-v11
drawable-xlarge-v11

i Więcej z Smallest width concept(SW)

 drawable-sw???dp

Dalej w Androidzie v3. 0 Honeycomb wprowadzili nową koncepcję SW(smallest width), w której urządzenia są podzielone na szerokość ekranu, więc jeśli tworzymy folder o nazwie drawable-sw360dp, to urządzenie z 720dp (szerokość lub wysokość) będzie używać zasobów z tego folderu.

Na przykład, aby znaleźć Samsung Galaxy S3 dp do przyrostka drawable-sw?dp
W odniesieniu do DP Obliczanie, Jeśli chcesz obsługiwać swój układ lub rysować na S3, obliczenie mówi

px = szerokość urządzenia= 720
dpi= gęstość urządzenia= 320

Wzór podany

    px = dp * (dpi / 160)

Przemienny wzór, ponieważ mamy wartość px

    dp = px / (dpi / 160)

Now putting value,

     dp= 720 / (320/160);
     dp=360. 

Więc drawable-sw360dp wykona zadanie

Get you Device configuaration from GsmArena Sameway można również utworzyć folder według Wersja Android API urządzenia tj. drawable-hdpi-v11 ' więc urządzenie, które ma API11 i jest to Hdpi, będzie korzystać z tych zasobów.

Dodatkowe Wskazówki:

  • Użyj układów względnych, dp, sp I mm

    Jednostki Dp - piksele niezależne od urządzenia znormalizowane do 1 piksela fizycznego na ekranie 160 ppi, tj. średniej gęstości. Skalowane w czasie pracy. Zastosowanie do wymiarów elementów ekranu

    Jednostki Sp - skalowane piksele, określone jako zmiennoprzecinkowe wartości, oparte na jednostkach dp, ale dodatkowo skalowane dla ustawienia preferencji rozmiaru czcionki użytkownika. Skalowane w czasie pracy. Użyj dla rozmiarów czcionek

    do układów należy zawsze używać RelativeLayout; AbsoluteLayout jest przestarzały i nie powinien być używany.

  • Użyj odpowiednich formatów obrazów-PNG kontra JPEG

    Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.

    Jednak PNG i JPEG nie są odpowiednikami. Mają różną jakość, a PNG nie zawsze jest najlepszy:

    Format JPEG może oferować do 50% redukcję rozmiaru pliku w stosunku do formatu PNG, co jest znaczące, jeśli aplikacja wymaga dużej ilości obrazów [24]} Format JPEG o wyższej jakości może wyglądać lepiej niż skompresowany "bezstratny" PNG, dla tego samego rozmiaru pliku.]}

  • Dodawanie etykiet do obrazów i Grafiki w celu debugowania

  • Użyj elementu supports-screens

  • Skonfiguruj emulatory za pomocą prawdziwego urządzenia wartości

    Standardowo systemy desktopowe wyświetlają się w rozdzielczości 72ppi (Mac) lub 96ppi (Windows, Linux). W porównaniu z urządzeniami mobilnymi wyświetlacze stacjonarne mają zawsze niską gęstość.

    Zawsze Konfiguruj emulatory Androida tak, aby naśladowały rzeczywiste wartości urządzenia i zawsze ustawiaj je na skalowanie, aby emulować gęstość urządzenia.

    W Eclipse łatwo jest utworzyć wiele emulatorów (z paska menu Eclipse wybierz Window > Avd Manager > New) skonfigurowanych z wartościami dla rzeczywistych urządzenia:

    Nazwij emulator dla prawdziwego urządzenia, które emuluje Określ rozdzielczość, nie używaj wbudowanych rozmiarów ogólnych Ustaw gęstość urządzenia tak, aby odpowiadała rzeczywistemu urządzeniu (w panelu sprzętowym Ustaw abstrakcyjną właściwość LCD do rzeczywistej gęstości, zawsze wartość całkowita)

    Po uruchomieniu urządzenia zawsze wybierz Skaluj wyświetlacz do rzeczywistego rozmiaru i wpisz rzeczywisty wymiar ekranu w calach.

    Jeśli nie ustawisz gęstości urządzenia, emulator domyślnie ma niską gęstość i zawsze ładuje zasoby specyficzne dla ldpi. Rozdzielczość (wymiary w pikselach) będzie prawidłowa, ale zasoby obrazu zależne od gęstości nie będą wyświetlane zgodnie z przeznaczeniem.

    Oczywiście nic, co zrobisz, nie odtworzy jakości obrazu o wyższej gęstości na wyświetlaczu biurkowym o niższej gęstości.

Oto dane zebrane podczas 7-dniowego okresu kończącego się 1 października 2012 roku. Aby zobaczyć najnowsze statystyki dotyczące wersji platformy Android, przejdź do tutaj

na podstawie ekranu Rozmiar

Tutaj wpisz opis obrazka

na podstawie gęstości ekranu

Tutaj wpisz opis obrazka

 148
Author: hotveryspicy,
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
2013-10-16 15:48:03

Projektanci powinni tworzyć podstawowe projekty

base size of mdpi devices * density conversion factor of highest supported density bucket
rozmiar.Rozmiar ekranu bazowego wynosi 320 X 480 px, a gęstość wiader jest następująca:

  • ldpi: 0.75
  • mdpi: 1.0 (gęstość bazowa)
  • hdpi: 1.5
  • xhdpi: 2.0
  • xxhdpi: 3.0
  • xxxhdpi: 4.0

I zająć dodatkową dostępną przestrzeń na urządzeniach z Androidem należy używać rozciągliwych elementów w obu kierunkach (poziomo i pionowo). Szczegółowe informacje są dostępne tutaj:

Http://vinsol.com/blog/2014/11/20/tips-for-designers-from-a-developer/

 1
Author: Alok Vaish,
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-11-20 13:10:38