如何将按钮从矩形固定为圆角矩形?

时间:2016-08-30 06:13:38

标签: android button

我可以找到许多圆角矩形按钮,但它对我不起作用。

我想念什么?

layout.xml

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="2"
    android:background="#ebf1ff"
    android:orientation="vertical">

    <LinearLayout
        style="@style/wrapperWidthWeightSumOne"
        android:paddingTop="50dp">

        <Button
            android:id="@+id/btnTypeAll"
            style="@style/ConsentTypeBtn"
            android:layout_width="0dp"
            android:layout_weight="0.85"
            android:text="All"/>
    </LinearLayout>

   (...)

</LinearLayout>

这是按钮的样式:

<style name="ConsentTypeBtn">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:onClick">onClick</item>
    <item name="android:background">@drawable/selector_btn_consent_all</item>
    <item name="android:layout_marginBottom">2dp</item>
    <item name="android:singleLine">true</item>
    <item name="android:layout_gravity">center</item>
    <item name="android:textColor">#fff</item>
</style>

...这是selector_btn_consent_all.xml

<?xml version="1.0" encoding="utf-8"?>
<selector http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/consent_type_on">
    <shape android:shape="rectangle">
        <corners android:radius="4dp" />
        <stroke android:width="2dp" android:color="#1F3259"/>
    </shape>
</item>
<item android:state_pressed="true" android:drawable="@drawable/consent_type_on"></item>
<item android:drawable="@drawable/consent_type_off"></item>

1 个答案:

答案 0 :(得分:0)

您的selector_btn_consent_all.xml状态如下:android:state_selected="true"时,使用android:drawable="@drawable/consent_type_on"

因此,在consent_type_on.xml文件夹中找到drawable,它将是rectangle,添加<corners android:radius="4dp" />

修改

然后,在consent_type_on.xml文件夹中设置drawable。这里的例子

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <corners android:radius="5dp" />
    <solid android:color="@android:color/holo_blue_bright" />

</shape>