如何在不删除标准底部边框的情况下更改EditText的背景颜色

时间:2015-10-17 14:18:50

标签: android background

EditText.setBackgroundColor(Color.RED)调用之后,我看到其中只有一个带有文字的红色矩形,但是我只想更改文本背景,并保持标准的底部边框,当字段没有焦点和蓝色时为灰色如果它有焦点。我可以通过编程方式进行吗?

如果输入无效,我想将文本背景更改为红色;如果输入有效,我想将其更改为透明。

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是使用drawable/shape.xml作为背景和逻辑代码情境调用EditText.setBackground(some_other_shape.xml)。以下是形状文件xml演示如何使用的示例:

  1. 边框颜色(“笔触”):在此示例中,来自colors.xml
  2. 的一些自定义颜色
  3. 填充颜色(“实心”):在此示例中为Android默认透明色
  4. 甚至是

    中的图片图标

    <!--Example for custom shape file xml design--> <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mipmap/icon_image" /> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="@android:color/transparent" /> <stroke android:width="1dp" android:color="@color/orange_primary" /> </shape> </item> </layer-list>

  5. 因此,只需为您需要的每种情况准备几种形状。另一种方法是使用layout params等,但我认为这个方法更快,并且通过易于理解的代码为自定义设计提供更多控制。