如何使特定的按钮侧弯曲

时间:2018-12-13 13:46:24

标签: android

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/white" />
    <corners
        android:bottomLeftRadius="30dp"
        android:topLeftRadius="30dp" />
</shape>

<Button
   android:id="@+id/btn_list"
   android:layout_width="@dimen/width_100dp"
   android:layout_height="wrap_content"
   android:background="@drawable/my_background"/>

尝试了以上代码,但对我不起作用。我需要做一个自定义类扩展按钮类吗?

Should display like this

2 个答案:

答案 0 :(得分:3)

非常简单!,将CardView作为根元素。 CardView根据自身舍入子元素的边缘。

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_margin="20dp"
    app:cardCornerRadius="25dp"
    app:cardElevation="10dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="@string/app_name" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#ecb8ff"
            android:gravity="center"
            android:text="@string/app_name" />

    </LinearLayout>

</androidx.cardview.widget.CardView>

输出:

Output

如果您还需要TabLayout。您可以看到this answer

答案 1 :(得分:1)

尝试一下,这有点棘手,但是有效

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#FFF" />
            <corners
                android:bottomLeftRadius="0dp"
                android:bottomRightRadius="500dp"
                android:topLeftRadius="0dp"
                android:topRightRadius="500dp" />
        </shape>
    </item>
</layer-list>