EditText在文本属性下面加下划线

我想改变编辑文本下方的蓝色,我不知道它是什么属性。

我尝试使用不同的背景颜色,但它没有工作。

我附上了一张图片

在这里输入图像说明

实际上,通过编程方式设置EditText的下划线颜色相当简单(只需一行代码)。

设置颜色:

editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN); 

去除颜色:

 editText.getBackground().clearColorFilter(); 

注意:当EditText有焦点时,设置的颜色将不起作用,而是具有焦点颜色。

API参考:

可绘制#setColorFilter

可绘制#clearColorFilter

EditText xml布局中使用android:backgroundTint=""

对于api <21,您可以使用支持库中的AppCompatEditText ,然后app:backgroundTint=""

每个EditText状态(焦点,启用,激活)都必须使用不同的背景图像,而不是颜色。

http://android-holo-colors.com/

在上面的网站中,您可以从Holo主题中的许多组件中获取图像。 只需select“EditText”和你想要的颜色。 您可以在页面底部看到预览。

下载.zip文件,然后将资源粘贴到项目中(图像和XML)。

如果您的XML名为:apptheme_edit_text_holo_light.xml(或类似的东西):

  1. 转到您的XML“styles.xml”并添加自定义EditText样式:

     <style name="EditTextCustomHolo" parent="android:Widget.EditText"> <item name="android:background">@drawable/apptheme_edit_text_holo_light</item> <item name="android:textColor">#ffffff</item> </style> 
  2. 只需在您的EditText执行以下操作:

     <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/EditTextCustomHolo"/> 

就是这样,我希望它可以帮助你。

您可以更改在styles.xml中指定它的EditText颜色的下划线 。 在您的应用主题styles.xml中添加以下内容。

 <item name="android:textColorSecondary">@color/primary_text_color</item> 

正如评论部分中的ana所指出的那样

  <item name="android:colorControlActivated">@color/black</item> 

在主题样式中设置这个function对于改变edittext下划线的颜色效果很好。

这适用于旧版和新版Android(即使在API 10上也能正常工作)。

styles.xml定义这个样式:

 <style name="EditText.Login" parent="Widget.AppCompat.EditText"> <item name="android:textColor">@android:color/white</item> <item name="android:textColorHint">@android:color/darker_gray</item> <item name="colorAccent">@color/blue</item> <item name="colorControlNormal">@color/blue</item> <item name="colorControlActivated">@color/blue</item> </style> 

现在在你的XML中,将其设置为主题和样式(设置textColor 样式 ,设置所有其他事物的主题 ):

 <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" style="@style/EditText.Login" android:theme="@style/EditText.Login"/> 

编辑

这个解决scheme导致在较新的Android版本(棒棒糖或棉花糖向前)上的一个微小的UI故障,select手柄加下划线。

这个问题在这个线程中讨论。 (我没有亲自尝试过这个解决scheme)

所以,你需要在你的drawable文件夹中创build一个新的.xml文件。

在该文件中粘贴下面的代码:

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:bottom="8dp" android:left="-3dp" android:right="-3dp" android:top="-3dp"> <shape android:shape="rectangle"> <stroke android:width="1dp" android:color="@color/white"/> </shape> </item> 

并在您的EditText,设置

  android:background="@drawable/your_drawable" 

你可以玩你的可绘制的XML,设置angular落,填充等

在您的应用程序样式中定义属性colorAccent 。 在这里你find一个例子

 <style name="AppTheme" parent="Theme.AppCompat.Light"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/action_bar</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="colorAccent">@color/action_bar</item> </style> 

使用下面的代码来改变编辑文本边框的背景颜色。

在drawable下创build新的XML文件。

abc.xml

 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#00000000" /> <stroke android:width="1dip" android:color="#ffffff" /> </shape> 

并将其添加为编辑文本的背景

 android:background="@drawable/abc" 

如果您不必支持API <21的设备,请使用xml中的backgroundHint,例如:

  <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPersonName" android:hint="Task Name" android:ems="10" android:id="@+id/task_name" android:layout_marginBottom="15dp" android:textAlignment="center" android:textColor="@android:color/white" android:textColorLink="@color/blue" android:textColorHint="@color/blue" android:backgroundTint="@color/lighter_blue" /> 

为了更好的支持和后备使用@Akariuz解决scheme。 backgroundHint是最无痛的解决scheme,但不能向后兼容,根据您的要求打个电话。

要改变底线的颜色,你可以在你的应用主题中使用它:

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="colorControlNormal">#c5c5c5</item> <item name="colorControlActivated">#ffe100</item> <item name="colorControlHighlight">#ffe100</item> </style> 

要更改浮动标签颜色写下列主题:

 <style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance"> <item name="android:textColor">#4ffd04[![enter image description here][1]][1]</item> </style> 

并在你的布局中使用这个主题:

  <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp" app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout"> <EditText android:id="@+id/edtTxtFirstName_CompleteProfileOneActivity" android:layout_width="match_parent" android:layout_height="wrap_content" android:capitalize="characters" android:hint="User Name" android:imeOptions="actionNext" android:inputType="text" android:singleLine="true" android:textColor="@android:color/white" /> </android.support.design.widget.TextInputLayout> 

在这里输入图像说明

你可以通过编程方式轻松地改变EditText的颜色:

edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));