Skocz do zawartości
gutenberg95

Czy dobrze rozumiem zagadnienie responsywności na równe wielkości ekranów?

    Rekomendowane odpowiedzi

    Witajcie, zaczynam projektować wygląd mojej aplikacji, chciałbym to zrobić od razu dobrze więc zacząłem się zagłębiać w tematykę skalowalności na różnego rodzaje ekranów. Chciałbym was zapytać czy dobrze rozumiem to zagadnienie, jeśli coś pomijam, proszę mnie pokierować.

    Załóżmy że mam jaki zaprojektowany projekt graficzny przycisku i chce go dostosować do różnych ekranów i teraz tak, projektuje go dla roździelczości mdpi - skala 100% obrazka zaprojektowanego.
    Mam foldery(zakładki) w zakładce res:

    res/
      drawable-xxxhdpi/
        awesome-image.png
      drawable-xxhdpi/
        awesome-image.png
      drawable-xhdpi/
        awesome-image.png
      drawable-hdpi/
        awesome-image.png
      drawable-mdpi/
        awesome-image.png  przykład zaciągniety z adroid develper dokumentacji ale tak sie u mnie to też rozkłada. 
    

    Żeby przycsk był skalowalny muszę go przeskalować do hdpi - 50% większy niż mdpi, następnie xhpi 100% więcej od mdpi itd. ?

    Następnie te grafiki wrzucam do określonych folderów , robię w kodzie w wyglądzie w pliku xml odniesienie do grafiki @drawable/[odniesienie do obrazka] i to wiem .

    Teraz pytanie czy w pliku java muszę dodać jakiś kod, który by mówił o tym że obraz musi być przeskalowany , czy wystarczy że zrobie te grafiki do tych folderów i android sam będzie wiedział żeby skorzystać z tych zasobów?

    Na stronie android studio w dokumentacji znalazłem takie coś :

     

    // The gesture threshold expressed in dp
    private static final float GESTURE_THRESHOLD_DP = 16.0f;
    
    // Get the screen's density scale
    final float scale = getResources().getDisplayMetrics().density;
    // Convert the dps to pixels, based on density scale
    mGestureThreshold = (int) (GESTURE_THRESHOLD_DP * scale + 0.5f);
    
    // Use mGestureThreshold as a distance in pixels...

    oraz

     

    private static final int GESTURE_THRESHOLD_DP = ViewConfiguration.get(myContext).getScaledTouchSlop();
    

    z góry dziękuje za pomoc, jestem zielony na razie jeśli chodzi o skalowalne elementy graficzne dla aplikacji.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    @Coders Lab A powiedz mi jak to jest, że w środowisku android studio mam np. przycisk wyśrodkowany marginesy itp ustawione ok a po zdebugowaniu aplikacji poprzez kabel usb na  urządzeniu button jest przesunięty bardziej np do lewej strony a w IDE jest an środku ?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    13 godzin temu, gutenberg95 napisał:

    button jest przesunięty bardziej np do lewej strony a w IDE jest an środku ?

    Ekrany różnią się od siebie. Mają różną rozdzielczość, DPI. Z tego powodu aby przycisk wyglądał tak samo na każdym ekranie trzeba się trochę pomęczyć. Szczególnie na początku. Polecam zapoznać się ConstraintLayout ?

    Możesz dodać swój layout tutaj - spróbujemy go tutaj poprawić ?

    • Piwko! 1

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Możecie to jeszcze trochę objaśnić? 

    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ę

    • Ostatnio przeglądający   0 użytkowników

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

    x