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(或类似的东西):
-
转到您的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>
-
只需在您的
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));