Jak wiemy, Android jest wyposażony w różne urządzenia, które mają różne funkcje, rozdzielczość i rozmiar ekranu, więc podczas tworzenia aplikacji obsługującej wiele (małych i dużych) ekranów pojawia się przeszkoda w rozmiarze i układzie.
Prowadzi to do różnych kombinacji rozmiarów ekranu, rozdzielczości i DPI i stwarza spore wyzwanie podczas projektowania i programowania na urządzenia z Androidem. Podczas gdy niektórzy inni producenci (spoza Androida) mają różne rozdzielczości i DPI, mają ten sam rozmiar ekranu, a rozdzielczości mają ten sam współczynnik proporcji. W związku z tym 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 przestrzegać, aby spełnić wymagania?
Pamiętaj, że mamy tablety o różnych rozmiarach i rozdzielczości.
Zdaję sobie sprawę, że programista Android zawiera te informacje, ale mój pogląd pochodzi z implementacji.
Z mojej wiedzy zrozumiałem, że do projektowania grafiki na Androida nawet programista musi znać koncepcję projektowania.
źródło
MicroMax Funbook
gsmarena.com/micromax_funbook_p300-4701.php7", 480X800, Ldpi (133 dpi)
możesz mi powiedzieć w jakiej kategorii (drawble dużym lub Ldpi czy Android v3.0 SW-480) będzie spadać?Odpowiedzi:
Wreszcie stworzyłem strukturę, która obsługuje układy i ikony dla wielu ekranów.
Android generalizuje wyświetlanie urządzenia na kategorie na podstawie dwóch parametrów:
Aby szybko określić rozmiar i gęstość ekranu, zainstaluj „ Jaki jest mój rozmiar ” na Androida.
Rozmiar ekranu
Android definiuje cztery uogólnione rozmiary ekranu:
Qualifier Size small ~3 inches (approx) normal ~4 inches (approx) large Exceeds 4 inches xlarge Exceeds 7 inches
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
Zazwyczaj:
Podana jest tutaj procentowa różnica ekranu urządzenia
Ale jak wiemy teraz, większość urządzeń ma 480X800, więc uważam to za urządzenie bazowe , więc nasze nowe obliczenia będą się podobać
co oznacza, że pierwsza ikona i projekt zostaną utworzone tylko dla rozdzielczości 480X800, a następnie dla pozostałych (tj. Ldpi, Mdpi, Xhdpi).
Istnieją obrazy, które są wspólne dla wszystkich układów i muszą być jednolite pod względem koloru i kształtu (bez złożonego kształtu, bez krzywej), więc dla tego rodzaju obrazu tworzymy,
9patch
który ma być umieszczony w folderze „drawable (no-suffix)”. Aby stworzyć obraz 9Patch, możesz użyć DrawNinePatch lub BetterNinePatchTeraz po prostu zmień nazwy swoich obrazów na podstawie standardów Androida i uzupełnij aplikację,
hdpi
a następnie po prostu weźdrawable-hdpi
folder i otwórz Adode Photoshop (zalecane) utwórz akcję o wielu rozmiarach (po prostu zmień rozmiar zgodnie ze współczynnikiem procentowym) po utworzeniu akcji dla wszystkich rozmiarów, a następnie po prostu wykonaj Batch Automatyzuj i podaj źródło (drawable-hdpi) i miejsce docelowe (drawable-ldpi, drawable-mdpi, drawable-xdpi).Powodem, dla którego nalegam, abyś używał programu Photoshop, ponieważ automatycznie zmieni rozmiar obrazu za pomocą akcji i jeszcze jeden plus, jest to, że nie musisz zmieniać nazwy pliku (nada mu taką samą nazwę jak oryginalna).
po zakończeniu tworzenia wszystkich obrazów odśwież projekt i przetestuj go.
Czasami może istnieć możliwość, że układ obsługujący ekran (xhdpi, hdpi, mdpi) może zostać przycięty na małym ekranie (ldpi), więc do obsługi tego wystarczy utworzyć dla niego oddzielny folder Layout (layout-small) i dodać
ScrollView
(głównie). Otóż to.Tabletki Tabletki są podzielone na dwie kategorie.
W tym celu musimy stworzyć obraz dla obu ekranów i po prostu odpowiednio je umieścić
Podsumowując, będziemy mieć ten folder w naszej aplikacji do obsługi wielu ekranów.
będzie bardziej kombinacją kwalifikatorów z
Screen size and Screen density
więcej kwalifikatora z
Screen density and Version
i więcej kwalifikatora z
Screen size and Version
i więcej kwalifikatora z
Smallest width concept(SW)
drawable-sw???dp
Co więcej, w Androidzie V3.0 Honeycomb wprowadzili nową koncepcję,
SW(smallest width)
w której urządzenia są kategoryzowane według szerokości ekranu, więc jeśli tworzymy folder o nazwie,drawable-sw360dp
urządzenie z 720 dp (szerokość lub wysokość) będzie używać zasobów z tego folderu.na przykład, aby znaleźć przyrostek
Samsung Galaxy S3
dp do sufiksu do rysowania-sw? dpW odniesieniu do obliczania DP , jeśli chcesz wspierać swój układ lub rysować do S3, to obliczenia mówią
px = szerokość urządzenia = 720
dpi = gęstość urządzenia = 320
podana formuła
px = dp * (dpi / 160)
zmienna formuła, ponieważ mamy wartość px
dp = px / (dpi / 160)
teraz dodając wartość,
dp= 720 / (320/160); dp=360.
więc
drawable-sw360dp
wykona pracęPobierz konfigurację urządzenia z GsmArena W ten sam sposób możesz również utworzyć folder zgodnie z wersją Android API urządzenia, tj. Drawable-hdpi-v11`, więc urządzenie, które ma API11 i jest Hdpi, będzie używać tych zasobów.
Dodatkowe wskazówki:
Użyj układów względnych, dp, sp i mm
Jednostki dp - niezależne od urządzenia piksele znormalizowane do 1 fizycznego piksela na ekranie o rozdzielczości 160 ppi, czyli średniej gęstości. Skalowany w czasie wykonywania. Służy do wymiarowania elementów ekranu
jednostki sp - przeskalowane piksele, określone jako wartości zmiennoprzecinkowe, na podstawie jednostek dp, ale dodatkowo skalowane zgodnie z ustawieniem preferencji użytkownika dotyczących rozmiaru czcionki. Skalowany w czasie wykonywania. Użyj dla rozmiarów czcionek
dla układów należy zawsze używać RelativeLayout; AbsoluteLayout jest przestarzałe i nie powinno być używane.
Użyj odpowiednich formatów obrazu - PNG lub JPEG
Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.
Jednak PNG i JPEG nie są odpowiednikami. Mają różne kompromisy dotyczące jakości, a PNG nie zawsze jest najlepsze:
JPEG może zapewnić do 50% redukcję rozmiaru pliku w porównaniu z PNG, co jest istotne, jeśli Twoja aplikacja intensywnie obsługuje obrazy
„Stratny” plik JPEG o wyższej jakości może wyglądać lepiej niż mocno skompresowany „bezstratny” plik PNG przy tym samym rozmiarze pliku
Dodaj etykiety do obrazów i grafiki w celu debugowania
Użyj elementu podpory-ekrany
Skonfiguruj swoje emulatory z rzeczywistymi wartościami urządzeń
Zwykle komputery stacjonarne wyświetlają się z rozdzielczością 72 ppi (Mac) lub 96 ppi (Windows, Linux). W porównaniu z urządzeniami przenośnymi wyświetlacze stacjonarne mają zawsze niską gęstość.
Zawsze konfiguruj emulatory Androida tak, aby naśladowały rzeczywiste wartości urządzeń, 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 Okno> AVD Manager> Nowy ) skonfigurowanych z wartościami dla rzeczywistych urządzeń:
Nazwij emulator dla rzeczywistego urządzenia, które emuluje Określ rozdzielczość, nie używaj Wbudowane rozmiary ogólne Ustaw gęstość urządzenia, aby pasowała do rzeczywistego urządzenia (w panelu Sprzęt ustaw abstrakcyjną właściwość LCD na gęstość rzeczywistą, zawsze wartość całkowitą)
Po uruchomieniu urządzenia zawsze wybieraj opcję 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 ustawia niską gęstość i zawsze ładuje zasoby specyficzne dla ldpi. Rozdzielczość (wymiary w pikselach) będą poprawne, ale zasoby obrazu zależne od gęstości nie będą wyświetlane zgodnie z oczekiwaniami.
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 w ciągu 7 dni kończących się 1 października 2012 r. Aby zobaczyć najnowsze statystyki dotyczące wersji platformy Androida, przejdź tutaj
Na podstawie rozmiaru ekranu
Na podstawie gęstości ekranu
źródło
Projektanci powinni tworzyć podstawowe projekty
base size of mdpi devices * density conversion factor of highest supported density bucket
Rozmiar ekranu podstawowego to 320 x 480 pikseli, a segmenty gęstości są następujące:
Aby zająć się dodatkową dostępną przestrzenią na urządzeniach z Androidem, należy używać rozciągliwych komponentów w obu kierunkach (poziomo i pionowo). Szczegółowe informacje dostępne są tutaj:
http://vinsol.com/blog/2014/11/20/tips-for-designers-from-a-developer/
źródło