Как я могу обрезать вертикальную линию в CardView? - PullRequest
0 голосов
/ 01 января 2019

Я хочу обрезать вертикальный вид линии в радиусе CardView

как эта картинка:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical">


    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="140dp"
        android:layout_margin="20dp"
        app:cardCornerRadius="40dp">

        <!-- radiused vertical line here -->

    </android.support.v7.widget.CardView>

</LinearLayout>

Ответы [ 2 ]

0 голосов
/ 01 января 2019

Вы можете попробовать установить фоновый ресурс изогнутой формы для отсечения видов.

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

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid
        android:color="#a40404" />
    <corners
        android:topRightRadius="40dp"
        android:bottomRightRadius="40dp"/>
</shape>

И основной макет CardView:

<LinearLayout 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"
    android:orientation="vertical">

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="140dp"
        android:layout_margin="20dp"
        app:cardCornerRadius="40dp"
        app:cardPreventCornerOverlap="false">

        <View
            android:layout_width="5dp"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:layout_marginTop="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginBottom="10dp"
            android:background="@drawable/curved_bg" />

        <View
            android:layout_width="5dp"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:layout_marginTop="3dp"
            android:layout_marginRight="20dp"
            android:layout_marginBottom="3dp"
            android:background="@drawable/curved_bg" />

    </android.support.v7.widget.CardView>
</LinearLayout>
0 голосов
/ 01 января 2019

Бро попробуйте это

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="16dp">


    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="140dp"
        android:layout_margin="20dp"
        app:cardCornerRadius="40dp">

        <View
            android:layout_width="5dp"
            android:layout_height="300dp"
            android:layout_gravity="right"
            android:layout_marginRight="10dp"
            android:background="#a40404" />
        <View
            android:layout_width="5dp"
            android:layout_height="300dp"
            android:layout_gravity="right"
            android:layout_marginRight="20dp"
            android:background="#a40404" />

        <!-- radiused vertical line here -->

    </android.support.v7.widget.CardView>
</LinearLayout>

I got something like this

...