Skocz do zawartości

Wykryliśmy, że używasz AdBlocka  :emo_im_sad:

Proszę, dodaj nas do wyjątków:) Wyświetlamy jedynie ładne, idealnie dopasowane reklamy - żadnych wyskakujących okienek czy wideo! Reklamy to jedyne źródło utrzymania naszej społeczności.

Kliknij tutaj, aby dowiedzieć się jak to zrobić. Dziękujemy!

lukpio

Layout dostosowany do różnych rozdzielczości

    Rekomendowane odpowiedzi

    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 tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    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 tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    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.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    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 tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    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 tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    + 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 tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    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 tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

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

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

    ×