Skocz do zawartości

Potrzebujemy Ciebie! Weź udział w rekrutacji do redakcji Android.com.pl!

lukpio

Layout dostosowany do różnych rozdzielczości

Rozwiązany

lukpio   
Otrzymana reputacja: 3
lukpio

Witajcie,

Powoli zabieram się do prac związanych z wyglądem swojej aplikacji i mam w tej kwestii do Was kilka pytań. Chodzi o dopasowywanie się elementów graficznych do rozdzielczości ekranu. Robiąc draft aplikacji stosowałem część elementów systemowych jak np buttony a część robiłem sam. Testy przeprowadzałem na kilku telefonach z różną rozdzielczością i o ile na dużych ekranach było ok o tyle na małych, elementy graficzne które robiłem samodzielnie, niestety nie dostosowywały się. W związku z tym chciałem poruszyć ten temat. W jaki sposób prawidłowo tworzyć aplikacje i ustawiać wielkości elementów aby później uniknąć takich rzeczy że komuś się wszystko porozjeżdża bo planuję całą apkę zrobić w samodzielnie tworzonym Layoucie i słabo by to wyglądało gdyby nagle zaczęło się rozwalać.

Udostępnij link do tego posta


Odnośnik do posta
Udostępnij na stronach
ZduneX25   
Otrzymana reputacja: 7
ZduneX25

Podaj przykład, jakich jednostek użyłeś (px czy dp)? Czasem zamiast ustawiać szerokość jakiegoś elementu lepiej wstawić mu odległość od prawej i lewej.

Udostępnij link do tego posta


Odnośnik do posta
Udostępnij na stronach
Borys Stach   
Otrzymana reputacja: 3
Borys Stach

Jeśli tworzysz własne elementy, to pamiętaj wszystkie obrazy przeskalować i porozkładać w odpowiednich folderach drawable (drawable-mdpi, drawable-hdpi itp).

Na samym dole masz ile razy większy od standardowego (mdpi) powinien być obraz w każdym folderze.

https://www.google.com/design/spec/layout/units-measurements.html#units-measurements-designing-layouts-for-dp

Jak chcesz się bardziej zagłębić w temat, ja się uczyłem stąd:
https://www.udacity.com/course/viewer#!/c-ud853/l-1623168625/m-1667758568

Ale może bardziej doświadczeni koledzy będą mieli lepsze źródła.

  • Lubię to! 1

Udostępnij link do tego posta


Odnośnik do posta
Udostępnij na stronach
lukpio   
Otrzymana reputacja: 3
lukpio

A właśnie, tu jest pies pogrzebany. Chodzi o kilka wielkości grafiki. Bo co z tego że ja przygotuję sobie np checkboxa wielkości 40px na 40px, wrzucę do katalogu, przeniosę na mój szablon, on wygląda super ale na małym telefonie nie pomniejsza się. Czyli mówisz że każdy element przeskalować. A powiedz mi, na których elementach buduję projekt? W sensie z którego katalogu? Czy muszę korzystać z konkretnych czy to już zależy ode mnie, które mi będą pasowały do szablonu?

Udostępnij link do tego posta


Odnośnik do posta
Udostępnij na stronach
Borys Stach   
Otrzymana reputacja: 3
Borys Stach

Musisz w katalogu "res" mieć strukturę katalogów drawable taką jak tu:
https://drive.google.com/file/d/0B2C83QvRuAidcHpuSDRScTR0eFU/view?usp=sharing

Wtedy jeśli w kodzie używasz przykłądowo R.drawable.btn_check_off, Android wybiera z katalogu drawable który odpowiada dpi wyświetlacza. Więc jeśli urządzenie jest zaliczane do xhdpi, wczytana zostanie grafika z dravable-xhdpi.
Automatycznie masz utworzony taką strukturę katalogów "minimap" dla ikony aplikacji.

Udostępnij link do tego posta


Odnośnik do posta
Udostępnij na stronach
mariuszs338   
Otrzymana reputacja: 12
mariuszs338

+ z domyslnych nazw folderow (np /drawable) pobierane sa zawartosci w momencie, gdy dla danego telefonu nie ma szukanej grafiki w folderze dedykowanym jego rozdzielczosci

 

przydaje sie to w momencie, gdy niektore grafiki nie musza byc przeskalowywane (bo np sa w formacie 9-patch i zachowuja sie zawsze dobrze) - mozesz wtedy odrobine zmniejszyc wielkosc aplikacji, wrzucajac grafike do domyslnego folderu raz a nie x razy do kilku (a mozesz ich uzbierac nawet i kilkanascie bez problemu)

Udostępnij link do tego posta


Odnośnik do posta
Udostępnij na stronach
szykam   
Otrzymana reputacja: 0
szykam

Jeśli chodzi o proste elementy, jak np. przyciski, to można to zrobić w XML, ustawiając  w tym XML kolory, ramki itd. Jeśli chodzi o ikony to sprawdź czy nie możesz użyć SVG którą możesz dodać też z poziomu Android Studio. W samym ustawieniu elementów może Ci pomóc RelativeLayout, tam masz "naLewoOd", "naDoleRodzica" itd. W LinearLayout fajnie sprawdza się też waga (weight) do proporcjonalnego ułożenia elementów.

Udostępnij link do tego posta


Odnośnik do posta
Udostępnij na stronach

Żeby dodać komentarz, musisz założyć konto lub zalogować się

Tylko zarejestrowani użytkownicy mogą dodawać komentarze

Dodaj konto

Załóż nowe konto. To bardzo proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się teraz


  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×