Сделать отзывчивые взгляды в Android - PullRequest
0 голосов
/ 10 мая 2019

У меня много проблем с адаптивным дизайном Android.В веб-дизайне мы можем использовать процент в качестве размера просмотра, но в Android у нас нет такой вещи.Независимо от того, что я использую ImageButtons или обычные кнопки или что-то еще, когда я меняю «устройство для предварительного просмотра», мой дизайн отверстий будет грязным, потому что ширина и высота не будут изменяться динамически, например, я делаю все хорошо на устройстве Pixel, но когда я меняю свойПредварительный просмотр до пикселя 2 XL каждая вещь такая маленькая.Спорим, ты не хочешь знать, что происходит, когда я меняю предварительный просмотр на износ: D

Я должен упомянуть, что я знаю, что не должен использовать жестко закодированные значения, и я не делаю это много.Я разработал свои кнопки с помощью Adobe XD, и с помощью этого инструмента я мог экспортировать свои кнопки в формате PNG и шести различных размерах (ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi).Но даже мои ImageButtons не меняли свои размеры динамически.Я пытался найти решение, и я уверен, что должно быть решение, но, возможно, из-за моего плохого английского, когда я ищу Android-адаптивный дизайн или такие вещи, я получаю некоторые несвязанные результаты.

Я действительно ценю некоторую помощь

Вот некоторый пример кода, размеры ImageButtons не будут динамически изменяться, поэтому в небольших устройствах, таких как pixel I, есть возможность прокрутки, но в более крупных устройствах, таких как pixel 3 XL, кнопки настолько малы, что нет необходимости прокручивать их.

<HorizontalScrollView
            android:layout_width="0dp"
            android:layout_height="wrap_content" android:layout_marginTop="32dp"
            app:layout_constraintTop_toBottomOf="@+id/button" android:layout_marginBottom="32dp"
            app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" android:scrollbars="none"
    >
        <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent">
            <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content"
                         android:src="@drawable/all_foods_btn" android:background="@android:color/transparent"
                         android:layout_marginStart="@dimen/activity_horizontal_margin"
                         android:layout_marginEnd="@dimen/activity_horizontal_margin"
                         android:contentDescription="@string/main_activity_all_foods_btn_dsc"/>

            <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content"
                         android:src="@drawable/profile_btn_main" android:background="@android:color/transparent"
                         android:layout_marginStart="@dimen/activity_horizontal_margin"
                         android:layout_marginEnd="@dimen/activity_horizontal_margin"
                         android:contentDescription="@string/main_activity_profile_btn_dsc"/>

        <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content"
                     android:src="@drawable/classic_decider_btn" android:background="@android:color/transparent"
                     android:layout_marginStart="@dimen/activity_horizontal_margin"
                     android:layout_marginEnd="@dimen/activity_horizontal_margin"
                     android:contentDescription="@string/main_activity_classic_decider_btn_dsc"/>
    </LinearLayout>

    </HorizontalScrollView>

Ответы [ 2 ]

2 голосов
/ 11 мая 2019

попробуйте эту библиотеку : эта единица измерения размера зависит от размера экрана, основанного на единице размера sp (для текстов).Это может помочь разработчикам Android с поддержкой нескольких экранов.

1 голос
/ 10 мая 2019

Попробуйте изменить android:layout_height="0dp" на HorizontalScrollView.Это обеспечит соблюдение установленных ограничений (снизу до родителя и сверху до button)

...