Как подогнать изображение внизу к рисунку - PullRequest
0 голосов
/ 20 апреля 2020

I want this result

I am here right now

Я хочу знать, как я могу разместить нижнее изображение в центре строки , Как это сделать? Я хочу, чтобы значок + находился в центре границы прямоугольника.

Это код компоновки для представления переработчика и просмотра изображений

<RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <FrameLayout
                android:id="@+id/skillsLL"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="@dimen/_15"
                android:layout_marginTop="@dimen/_10"
                android:layout_marginEnd="@dimen/_15"
                android:layout_marginBottom="@dimen/_15"
                android:orientation="vertical">


                <androidx.recyclerview.widget.RecyclerView
                    android:id="@+id/skillsRV"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/education_outline"
                    android:paddingStart="@dimen/_15"
                    android:paddingEnd="@dimen/_15"
                    android:visibility="visible"

app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
                    app:spanCount="3" />

                <ImageView
                    android:id="@+id/addIMG"
                    android:layout_width="@dimen/_15"
                    android:layout_height="@dimen/_15"
                    android:layout_alignParentBottom="true"
                    android:layout_centerInParent="true"
                    android:layout_gravity="bottom|center"
                    android:adjustViewBounds="true"
                    android:scaleType="fitEnd"
                    android:src="@drawable/ic_more" />

            </FrameLayout>


        </RelativeLayout>

Это мой нарисованный код, который находится за

 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android">
 <solid android:color="@color/background_color"/>
 <corners android:radius="15dp" />
 <stroke android:width="0.5dp" android:color="@color/black" />
 </shape>

Ответы [ 4 ]

1 голос
/ 20 апреля 2020

Я бы сделал это. Вам не нужно менять Frame Layout на Constraint Layout, используя этот метод.

<RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <FrameLayout
                android:id="@+id/skillsLL"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="@dimen/_15"
                android:layout_marginTop="@dimen/_10"
                android:layout_marginEnd="@dimen/_15"
                android:layout_marginBottom="@dimen/_15"
                android:orientation="vertical">

            // Keep everything else as it is . . .

            </FrameLayout>

                <ImageView
                    android:id="@+id/addIMG"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:layout_below="@id/skillsLL"
                    android:adjustViewBounds="true"
                    android:scaleType="fitEnd"
                    android:src="@drawable/ic_more"
                    android:layout_marginTop="-10sp" />

        </RelativeLayout>

Выведите изображение из макета кадра и попробуйте мой код. Убедитесь, что вы используете размерность, как я использую. Вы можете настроить их позже.

По сути, вы помещаете изображение под макет рамки, а затем перемещаете изображение на половину его высоты. Дайте мне знать, если вам нужна дополнительная помощь в комментариях. ,

0 голосов
/ 20 апреля 2020

Используйте ConstraintLayout вместо FrameLayout, а затем ограничьте верхнее и нижнее ограничение представления вашего изображения нижней частью представления переработчика.

Ограничьте стороны представления изображения сторонами RecyclerView;

Код для ImageView:

<ImageView
        android:id="@+id/addIMG"
        android:layout_width="15dp"
        android:layout_height="15dp"
        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        android:layout_gravity="bottom|center"
        android:adjustViewBounds="true"
        android:scaleType="fitEnd"
        android:src="@drawable/refresh"
        app:layout_constraintBottom_toBottomOf="@+id/skillsRV"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/skillsRV" />
0 голосов
/ 20 апреля 2020

Я реализовал это для одного из моих экранов. Вы можете попробовать это.

<RelativeLayout
       xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


                <android.support.constraint.ConstraintLayout
                    android:layout_width="match_parent"
                    android:layout_marginStart="@dimen/_15sdp"
                    android:layout_marginTop="@dimen/_10sdp"
                    android:layout_marginEnd="@dimen/_15sdp"
                    android:layout_marginBottom="@dimen/_15sdp"
                    android:layout_height="wrap_content">

                    <android.support.v7.widget.RecyclerView
                        android:id="@+id/skillsRV"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@drawable/base_bg_rectangle"
                        android:paddingStart="@dimen/_15sdp"
                        android:paddingEnd="@dimen/_15sdp"
                        android:visibility="visible"
                        app:layout_constraintTop_toTopOf="parent"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintEnd_toEndOf="parent"
                        android:layout_marginBottom="@dimen/_7sdp"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layoutManager="android.support.v7.widget.GridLayoutManager"
                        app:spanCount="3" />

                    <ImageView
                        android:id="@+id/addIMG"
                        android:layout_width="@dimen/_15sdp"
                        android:layout_height="@dimen/_15sdp"
                        android:layout_centerInParent="true"
                        android:layout_gravity="bottom|center"
                        android:adjustViewBounds="true"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintEnd_toEndOf="parent"
                        android:scaleType="fitEnd"
                        android:src="@drawable/default_image" />
                </android.support.constraint.ConstraintLayout>


    </RelativeLayout>
0 голосов
/ 20 апреля 2020

Лучший способ сделать это - ConstraintLayout без каких-либо отрицательных полей. Просто используйте макет ниже. Он будет отлично работать для всех размеров экрана.

<androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/skillsRV"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="visible"
            app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:spanCount="3" />

    <ImageView
            android:id="@+id/imageView"
            android:layout_width="20dp"
            android:layout_height="20dp"
            app:layout_constraintBottom_toBottomOf="@+id/skillsRV"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/skillsRV"
            app:srcCompat="@drawable/ic_more" />

</androidx.constraintlayout.widget.ConstraintLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...