【问题标题】:Change border color when edittext is focused聚焦edittext时更改边框颜色
【发布时间】:2014-06-18 12:09:27
【问题描述】:

我想知道如何在edittext获得焦点时更改它的边框颜色,目前它看起来像这样:

我已经尝试在 SDK 中检查源图片,但我无法理解它,我也尝试使用 xml,但无法仅更改边框颜色。

如果我找到了可以在 Photoshop 中编辑以更改颜色的源图片,有什么提示可以做到这一点,或者源图片的位置? :)

【问题讨论】:

  • 您可以使用可绘制选择器并为EditText 显示两种不同的背景,一种是默认背景,另一种是聚焦状态。 Here 是该主题的官方指南。
  • 谢谢我检查一下!

标签: android android-layout android-edittext


【解决方案1】:

您可以为您的 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>

并设置背景:

editText.setBackgroundResource(R.drawable.yourFile);

【讨论】:

  • 我认为应该有 state_focused 而不是 state_pressed
猜你喜欢
  • 2012-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
  • 2019-02-10
  • 2019-09-28
相关资源
最近更新 更多