如何更改EditText的边框颜色(未聚焦)?

时间:2012-02-10 08:03:41

标签: android colors android-edittext border

我将EditText的背景颜色更改为transperant。现在EditText在没有聚焦时看起来不可见。那么如何更改EditText的非聚焦边框颜色?

这是什么XML属性?

7 个答案:

答案 0 :(得分:83)

在drawable中创建一个带有以下内容的XML文件(比如backwithborder.xml):

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#00000000" />
    <stroke android:width="1dip" android:color="#ffffff" />
</shape>

和EditText用户属性android:background="@drawable/backwithborder"

答案 1 :(得分:10)

答案 2 :(得分:3)

Android操作系统本身会在用户专注于EditText时为其添加边框。颜色取决于操作系统版本。有时我们可能想要摆脱默认的焦点边框,并且有办法实现它。

我们可以将背景颜色保持为透明,以移除焦点上的EditText边框。

     <EditText 
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:background="#00000000"
      />

答案 3 :(得分:3)

回答太晚了,但我为新开发人员编写了以下代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true">
    <layer-list>
        <item>
            <shape android:shape="rectangle">
                <stroke android:width="2dp" android:color="@color/components_colorPrimaryDark" />
                <solid android:color="@color/components_white" />
            </shape>
        </item>

        <item android:bottom="2dp">
            <shape android:shape="rectangle">
                <solid android:color="@color/components_white" />
            </shape>
        </item>
    </layer-list>
</item>
<item android:state_focused="false">
    <layer-list>
        <item>
            <shape android:shape="rectangle">
                <stroke android:width="1dp" android:color="@color/components_colorAccent" />
                <solid android:color="@color/components_white" />
            </shape>
        </item>

        <item android:bottom="1dp">
            <shape android:shape="rectangle">
                <solid android:color="@color/components_white" />
            </shape>
        </item>
    </layer-list>
</item>

答案 4 :(得分:2)

您可以使用背景颜色创建一个linearlayout,其颜色应为您想要的边框颜色。然后将编辑文本放在此Linearlayout中并提供一些背景颜色。 例如:如果边框为灰色,则Linearview的背景为灰色。 并编辑文本背景黑色。

对于padding = "1dp",您可以为border_width = "1dp"提供{{1}}的边框宽度。

答案 5 :(得分:1)

如果只想更改EditText边框颜色,则可以使用attr .as-console-wrapper { max-height: 100% !important; top: 0; }

app:backgroundTint

答案 6 :(得分:0)

在drawable中创建文件edittext_bg.xml

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

网站:https://code-android-example.blogspot.com/2019/10/change-edittext-boder-color-android.html