在EditText.setBackgroundColor(Color.RED)
调用之后,我看到其中只有一个带有文字的红色矩形,但是我只想更改文本背景,并保持标准的底部边框,当字段没有焦点和蓝色时为灰色如果它有焦点。我可以通过编程方式进行吗?
如果输入无效,我想将文本背景更改为红色;如果输入有效,我想将其更改为透明。
答案 0 :(得分:0)
我认为最好的方法是使用drawable/shape.xml
作为背景和逻辑代码情境调用EditText.setBackground(some_other_shape.xml)
。以下是形状文件xml
演示如何使用的示例:
colors.xml
Android
默认透明色甚至是
中的图片图标 <!--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>
因此,只需为您需要的每种情况准备几种形状。另一种方法是使用layout params
等,但我认为这个方法更快,并且通过易于理解的代码为自定义设计提供更多控制。