Android rozdzielczość grafiki

0

Witam,

mam do Was prośbę, czy ktoś w miarę możliwości mógłby mi wytłumaczyć jak dostosować rozmiar grafiki w aplikacjach dla Androida ?
Zaglądałem do różnych źródeł w tym do oficjalnych źródeł od google, jednak nadal mam mętlik w głowie.

Z wyczytanych informacji(http://developer.android.com/guide/practices/screens_support.html) wiem, że są 4 typy ekranów które należy obsłużyć w aplikacji: small, normal, large, xlarge. Są różne gęstości tych ekranów i to również trzeba uwzględnić w grafice(dpi), dla poszczególnych ekranów grafika jest odpowiednio skalowana np. small to 0,75 rozmiaru normal a large to 1,5 itp.

Czy w takim razie wyjściowym rozmiar grafiki ustalam dla ekranu normal np kwadrat 100px x 100px gdzie później w aplikacji on jest skalowany ? Czy taka grafikę muszę odpowiednio przygotować dla różnych rozdzielczości i rozmiarów ekranów ?

Z góry przepraszam za mój chaotyczny styl pisania.

Pozostałe źródła z jakich korzystałem to:

http://anidea.com/technology/designer%E2%80%99s-guide-to-supporting-multiple-android-device-screens
http://jacksonkr.com/content/basic-android-device-resolutions

Pozdrawiam

Jin

0

przypomnę się grzecznie :)

Z góry dziękuje za wszelką pomoc w tym temacie.

Pozdrawiam

Jin

2

Ostatnio pisałem pierwszą aplikację na Androida i mogę się podzielić moimi uwagami na ten temat:

Jeśli wstawisz obrazek na layout, to będzie on pobrany z odpowiedniego katalogu (xhdpi, hdpi, mdpi, ldpi). Czyli w zależności od rodzaju wyświetlacza (ale nie rozdzielczości!). Gdy nie ustawisz stałej szerokości, to może on mieć zupełnie różne rozmiary w zależności od ekranu.

Ja praktykowałem tak, że dla każdego obrazka/buttona ustawiam np width="50dp" oraz ustawiam skalowanie. Tworzę jeden większy rozdzielczościowo obrazek i wrzucam go do katalogu xhdpi. Więc dla różnych ekranów, ma jedną szerokość (bo jest skalowany do 50dp, a dla każdego typu ekranu masz mnożnik, ile to wyjdzie px w rzeczywistości). Oczywiście można potworzyć wersje każdego obrazka dla każdego typu, (ale dla mnie to było zbyt czasochłonne), i uniknąć skalowania, lub zminimalizować jego skutki.

Według mnie, wystarczająco dobrze wyglądają skalowane obrazki.

Jak dla mnie, przydałaby się jeszcze jedna miara: rozmiar obrazka w zależności od rozdzielczości. Na tablecie, przyciski wydają się być relatywnie małe.

1

Sprawa jest prosta, to czy grafika zostanie automatycznie przeskalowana czy nie, zależy od tego jakich ustawień użyjesz w layoucie.
Możesz grafikę wstawić tak by zawsze była pikselami 1:1 z ekranem, albo by się skalowała do określonego fizycznego rozmiaru.
Skalowanie kosztuje i może spowodować pojawienie się brzydkich artefaktów.
Decyzja co musi być skalowalne i jak zależy od ciebie i okoliczności, czami lepiej zachować piksele 1:1, a czasami bardziej zależy na zachowaniu stałego fizycznego rozmiaru, a kiedy indziej na zajęciu określonego procentu ekranu.
Wszystko zależy od tego jak zaprojektujesz layouty (one też mogą być różne dla różnych rozdzielczości).
W zasadzie jedynie ikonkę programu jesteś zobowiązany dostarczyć w każdej możliwej wersji (nie masz pełnej kontroli nad tym jak jest wyświetlana), reszta pozostaje w ramach twojego zdrowego rozsądku.

Jeśli twoja aplikacja nie jest skomplikowana to spokojnie można polegać na skalowaniu, ja bym jednak przynajmniej dostarczył osobną grafikę dla tabletów i telefonów.
Na dodatek możesz stosować grafikę wektorową, wtedy skalowanie nie będzie problemem.
W sieci znajdziesz online'owe tool'e, które automatycznie generują grafiki w każdej wymaganej rozdzielczości.

0

ok wielkie dzięki za pomoc, będę próbował.

Pozdrawiam

Jin

1 użytkowników online, w tym zalogowanych: 0, gości: 1