Изогнутая форма макета в android - PullRequest
0 голосов
/ 24 марта 2020

enter image description here

Я хочу знать, как создать этот макет стиля изогнутого радиуса с высотой левой стороны больше, чем высота правой стороны.

Это то, что Я пробовал до сих пор:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
    android:width="0.5dp"
    android:color="@color/white" />
<corners
    android:bottomLeftRadius="150dp"
    android:bottomRightRadius="150dp"
    android:topLeftRadius="0dp"
    android:topRightRadius="0dp" />
<padding
    android:bottom="0dp"
    android:left="0dp"
    android:right="0dp"
    android:top="0dp" />

<solid android:color="@color/red/>

Но я хочу знать, как достичь этой высоты: левая сторона выше, чем правая.

Ответы [ 2 ]

1 голос
/ 24 марта 2020

Вот библиотека для такой вещи. DiagonalLayout от Florent37

Вот краткий пример этого.

<com.github.florent37.diagonallayout.DiagonalLayout
        android:layout_width="match_parent"
        android:layout_height="250dp"
        diagonal:diagonal_angle="10"
        diagonal:diagonal_position="left / right / top / bottom"
        diagonal:diagonal_direction="left / right"
        android:elevation="10dp">

    <!-- YOUR CONTENT -->

</com.github.florent37.diagonallayout.DiagonalLayout>

enter image description here

0 голосов
/ 26 марта 2020

Я использовал векторное изображение в качестве фона, чтобы получить эту форму

Макет страницы входа

    <LinearLayout
    android:id="@+id/headerLayout"
    android:layout_width="match_parent"
    android:layout_height="@dimen/diagonal_rect_size_pos"
    android:background="@drawable/background"
    android:orientation="vertical"
    >


    <ImageView
        android:id="@+id/sixitLogoImageView"
        android:layout_width="@dimen/sixit_logo_size"
        android:layout_height="@dimen/sixit_logo_size"
        android:layout_gravity="center"
        android:src="@drawable/sixit_logo_white"
        android:layout_margin="@dimen/default_padding"
        />

</LinearLayout>

фон. xml

   <vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="360.002dp"
    android:height="280.806dp"
    android:viewportWidth="360.002"
    android:viewportHeight="280.806">
  <path
      android:pathData="M0.002,0h359.969v179.557a18.379,18.379 0,0 1,-11.213 17.919c-4.179,4.213 -336.377,82.7 -339.615,82.745s-9.274,4.732 -9.142,-13.251c0.133,0.001 0.001,-266.97 0.001,-266.97z"
      android:fillColor="#161616"/>
</vector>
...