聚焦edittext时更改边框颜色

da_*_*_st 7 android android-layout android-edittext

我想知道如何在聚焦时更改edittext的边框颜色,此时它看起来像这样:

在此输入图像描述

我已经尝试在SDK中检查源图片,但我对它没有任何意义,我也尝试过使用xml,但是无法仅更改边框颜色.

如果我找到源图片,我可以在photoshop中编辑以更改颜色,有关如何执行此操作或源图片位于何处的提示?:)

Ste*_*yen 25

您可以为EditText创建自定义形状

1:STATE_ENABLED用于检查ET是否已启用/禁用.

2:STATE_PRESSED用于检查ET何时被按下(它将改变印刷机上的颜色,但不会保持这种状态.)

3:只要ET聚焦,STATE_FOCUSED就会改变ET边界颜色(这符合要求).

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true"
            android:state_focused="true">
        <shape android:padding="10dp" android:shape="rectangle">
            <solid android:color="#FFFFFF" />
            <stroke android:width="2dp" android:color="#ffa0a496" />
            <corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp" />
        </shape>
    </item>
    <item android:state_enabled="true">
        <shape android:padding="10dp"
            android:shape="rectangle">
            <solid android:color="#FFFFFF" />
            <corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp" />
        </shape>
    </item>
</selector>
Run Code Online (Sandbox Code Playgroud)

并设置背景:

editText.setBackgroundResource(R.drawable.yourFile);
Run Code Online (Sandbox Code Playgroud)

  • 我认为应该有state_focused而不是state_pressed (10认同)