Пользовательский угол рисования Android - PullRequest
0 голосов
/ 20 февраля 2019

Прежде всего, это не повторяющийся вопрос.Я хочу добиться этого индивидуального дизайна в Android с помощью Drawable.Как добиться эффекта дуги, как на изображении ??

enter image description here

До сих пор, что я сделал:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <rotate
            android:fromDegrees="-5"
            android:pivotX="0%"
            android:pivotY="100%"
            android:toDegrees="50">
            <shape android:shape="rectangle">
                <solid android:color="@color/light_pink" />
                <corners android:bottomLeftRadius="10dp"
                    android:bottomRightRadius="20dp"/>
            </shape>
        </rotate>
    </item>
    <item android:bottom="50dp">
        <rotate
            android:fromDegrees="0"
            android:pivotX="10%"
            android:pivotY="-100%"
            android:toDegrees="0">
            <shape android:shape="rectangle">
                <solid android:color="@color/light_pink" />
            </shape>
        </rotate>
    </item>

</layer-list>

Вывод: enter image description here

Проблема: Изображение накладывается на фон.Я также установил clipChildren для родительского макета, но без эффектов.

Мой макет

<?xml version="1.0" encoding="utf-8"?>
<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="match_parent">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/top_arc"
        android:clipChildren="true">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="400dp"
            android:src="@drawable/no_image_male" />
    </RelativeLayout>

</RelativeLayout>

Только для информации: у меня есть SVG длято же самое, но не знаю, как предотвратить перекрытие.

1 Ответ

0 голосов
/ 20 февраля 2019

Здесь вы идете с решением.Просто замените цвета.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/top_rl_gradient"/>
<item
    android:bottom="-200dp"
    android:left="0dp"
    android:right="-300dp"
    android:top="200dp">
    <rotate
        android:fromDegrees="-10"
        android:pivotX="0%"
        android:pivotY="100%">
        <shape
            android:shape="rectangle">
            <solid
                android:color="@color/white"/>
        </shape>
    </rotate>
</item>

Вы можете отрегулировать угол и высоту отрисовки с помощью тега поворота.Надеюсь, это поможет вам.

...