如何设置2种颜色的边框按钮

时间:2017-10-31 19:19:45

标签: android xml button colors border

我尝试使用两种颜色白色黑色Button创建边框。所以我决定创造一个形状。我试图添加白色和黑色渐变,我的代码不起作用

我想要这样的边框:

enter image description here

我的xml:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="rectangle" >
            <gradient
                android:angle="360"
                android:centerColor="#000000"
                android:endColor="#bfbfbf"
                android:gradientRadius="360"
                android:startColor="#ffffff"
                android:type="sweep" />

            <stroke
                android:width="2dp"
                android:color="#ffffff" />
        </shape>
    </item>
    <item
        android:bottom="4dp"
        android:left="4dp"
        android:right="4dp"
        android:top="4dp">
        <shape android:shape="rectangle" >
            <solid android:color="#d2d2d2" />
        </shape>
    </item>

</layer-list>

和buttn:

<Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="OK"
            android:background="@drawable/border"
            android:layout_alignBottom="@+id/progress"
            android:layout_centerHorizontal="true"
            android:id="@+id/okbtn" />

3 个答案:

答案 0 :(得分:1)

这似乎是使用9-patch image的好地方。任何基于常规.png文件,<shape><vector>的解决方案都会缩小按钮的白色和黑色边框。

创建button.9.png文件后,您可以使用android:background="@drawable/button"将其设置为按钮的背景。

修改

这是基于您链接的.png文件的9补丁:

enter image description here

答案 1 :(得分:1)

button_background.xml

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

    <item>
        <shape android:shape="rectangle">
            <stroke
                android:width="@dimen/stroke_width_outer"
                android:color="#000" />
        </shape>
    </item>

    <item
        android:bottom="@dimen/stroke_width_outer"
        android:right="@dimen/stroke_width_outer">
        <shape android:shape="rectangle">
            <stroke
                android:width="@dimen/stroke_width_outer"
                android:color="#FFF" />
        </shape>
    </item>

    <item
        android:bottom="@dimen/stroke_width_outer"
        android:left="@dimen/stroke_width_outer"
        android:right="@dimen/stroke_width_outer"
        android:top="@dimen/stroke_width_outer">
        <shape android:shape="rectangle">
            <stroke
                android:width="@dimen/stroke_width_outer"
                android:color="#7F7F7F" />
        </shape>
    </item>

    <item
        android:bottom="@dimen/stroke_width_inner"
        android:left="@dimen/stroke_width_outer"
        android:right="@dimen/stroke_width_inner"
        android:top="@dimen/stroke_width_outer">
        <shape android:shape="rectangle">
            <stroke
                android:width="@dimen/stroke_width_outer"
                android:color="#DFDFDF" />
        </shape>
    </item>

    <item
        android:bottom="@dimen/stroke_width_inner"
        android:left="@dimen/stroke_width_inner"
        android:right="@dimen/stroke_width_inner"
        android:top="@dimen/stroke_width_inner">
        <shape android:shape="rectangle">
            <solid android:color="#BFBFBF" />
        </shape>
    </item>

</layer-list>

值/ dimen.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="stroke_width_outer">3dp</dimen>
    <dimen name="stroke_width_inner">6dp</dimen>
</resources>

stroke_width_inner应该是stroke_width_outer的两倍

将背景应用于按钮 -

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/button_background"
    android:text="OK"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

在布局编辑器上 -

On Layout Editor

在设备上 -

On Device

在设备上,您在布局编辑器中看不到灰色的左边和上边框

答案 2 :(得分:0)

请在此处查看有关创建可绘制形状http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

的信息

完成此操作后,在按钮组的XML中设置android:background="@drawable/your_button_border"