Android 按钮边框颜色

Posted

技术标签:

【中文标题】Android 按钮边框颜色【英文标题】:Android Button Border Color 【发布时间】:2016-02-24 03:59:12 【问题描述】:

我正在使用以下 XML 制作 android Button。

设计预览的输出,如下图所示。

但是,当我在设备上运行时,三星 Duos。它显示完全不同。

如何设置边框。

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

    <stroke
        android:
        android:color="#d78d79" />

</shape>

我在 XML 中也遇到错误,但它工作正常。当我将鼠标悬停在错误上时没有显示任何内容。

有人可以帮忙吗?

【问题讨论】:

显示@drawable/button_border内容 【参考方案1】:

shape 元素中添加&lt;solid android:color="@android:color/transparent" /&gt; 作为子元素

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <solid android:color="@android:color/transparent" />
    <stroke
        android:
        android:color="#d78d79" />

</shape>

【讨论】:

为什么设计和设备不同? 这是Samsung...自定义android主题...我不知道。请检查将其设置为透明是否有帮助 你能改变 XML 吗?好像我两次使用@android:color,所以收到错误。 查看我的答案编辑,但如果此代码不能解决您的问题,您应该将solid android:color 属性设置为与您的布局背景相同的值。【参考方案2】:

我通常会这样做!

您可以在一个 XML 中完成所有这些操作,但我将展示很长的路要走,以便您更好地理解。

simple_button.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:state_pressed="true"
        android:drawable="@drawable/button_pressed"/>

    <item
        android:state_enabled="false"
        android:drawable="@drawable/button_disabled"/>
    <item
        android:state_enabled="true"
        android:drawable="@drawable/button_enabled"/>

</selector>

button_pressed.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="2dp" />
    <solid android:color="#20FF5252" />
    <padding
        android:bottom="0dp"
        android:left="0dp"
        android:right="0dp"
        android:top="0dp" />
    <size
        android:
        android: />
    <stroke
        android:
        android:color="#1DE9B6" />
</shape>

button_disabled.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <corners
        android:radius="14dp"
        />
    <solid
        android:color="@android:color/transparent"
        />
    <padding
        android:left="0dp"
        android:top="0dp"
        android:right="0dp"
        android:bottom="0dp"
        />
    <stroke
        android:
        android:color="#1DE9B6"
        />
</shape>

button_enabled.xml

  <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <corners
        android:radius="2dp"
    />
    <solid
        android:color="@android:color/transparent"
    />
    <padding
        android:left="0dp"
        android:top="0dp"
        android:right="0dp"
        android:bottom="0dp"
    />
    <size
        android:
        android:
    />

    <stroke
        android:
        android:color="#1DE9B6"
    />
</shape>

styles.xml

 <style name="Widget.Button.Simple" parent="android:Widget">
        <item name="android:gravity">center_vertical|center_horizontal</item>
        <item name="android:background">@drawable/simple_button</item>
        <item name="android:textAppearance">?android:textAppearanceMedium</item>
        <item name="android:textColor">#1DE9B6</item>
        <item name="android:textStyle">bold</item>

    </style>

用法

  <Button
        android:id="@+id/btn_simple"
        style="@style/Widget.Button.Simple"
        android:layout_
        android:layout_
        android:layout_margin="20dp"
        android:text="Button" />

希望对你有帮助!

【讨论】:

以上是关于Android 按钮边框颜色的主要内容,如果未能解决你的问题,请参考以下文章

Android 通过solid来定义不同边框的颜色,可以只定义一个边框的颜色

118通过solid来定义不同边框的颜色,可以只定义一个边框的颜色

Android 使用shape定义不同控件的的颜色背景色边框色

如何更改按钮的边框颜色并更改editText中下划线的颜色?

自定义单选按钮边框颜色

怎么把电子表格的边框变颜色啊