如何在CardView中剪切垂直线?

时间:2018-12-31 22:39:46

标签: android android-layout android-cardview

我想在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 :(得分:0)

尝试一下

<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

答案 1 :(得分:0)

您可以尝试为剪切视图设置弯曲的背景资源。

这是一个示例形状文件,您需要根据需要修改半径值。

<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>