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

Android 如何在不删除标准底部边框的情况下更改EditText的背景色,android,background,Android,Background,调用EditText.setBackgroundColor(Color.RED)后,我只看到一个红色矩形,其中包含文本,但我只想更改文本背景,并保留标准的下边框,当字段没有焦点时,下边框为灰色,如果有焦点,下边框为蓝色。我可以通过编程来完成吗 如果输入无效,我想将文本背景更改为红色,如果输入有效,则更改为透明。我认为最好的方法是使用drawable/shape.xml作为背景,并在逻辑代码情况下调用EditText.setBackground(some\u other\u shape.xml)。

调用
EditText.setBackgroundColor(Color.RED)
后,我只看到一个红色矩形,其中包含文本,但我只想更改文本背景,并保留标准的下边框,当字段没有焦点时,下边框为灰色,如果有焦点,下边框为蓝色。我可以通过编程来完成吗


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

我认为最好的方法是使用
drawable/shape.xml
作为背景,并在逻辑代码情况下调用
EditText.setBackground(some\u other\u shape.xml)
。下面是shape file
xml
的一个示例,演示了如何使用:

  • 边框颜色(“笔划”):在本例中,来自
    colors.xml
  • 填充颜色(“实心”):在本例中
    Android
    默认透明颜色
  • 甚至图像图标内

    
    


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

    我认为最好的方法是使用
    drawable/shape.xml
    作为背景,并根据逻辑代码情况调用
    EditText.setBackground(some\other\u shape.xml)
    。下面是shape file
    xml
    的一个示例,演示了如何使用:

  • 边框颜色(“笔划”):在本例中,来自
    colors.xml
  • 填充颜色(“实心”):在本例中
    Android
    默认透明颜色
  • 甚至图像图标内

    
    

  • 因此,只需为您需要的每种情况准备几个形状。另一种方法是使用
    布局参数
    等。但我认为这种方法更快,并且可以在易于理解的代码中为自定义设计提供更多控制