Change Line Color of EditText - Android

2019-01-23 17:09发布

问题:

Can I change the line color on EditText. When is active it has some greenish color.

Is it possible to change only the color of line when is active, and how can I do this...?

回答1:

You need to set background source for an edit text.

  1. Generate it http://android-holo-colors.com/
  2. Than you can apply generated drawable as background like android:background="@drawable/my_theme_edit_text" for the custom EditText. Or you can set that background in your app theme - you will find example in .zip file from that site


回答2:

Here you are:

editText.getBackground().setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_ATOP);


回答3:

You can set background of edittext to a rectangle with minus padding on left, right and top to achieve this.

Here is the xml example for setting different line colors for focused and not focused edittext, just set it as background of edittext.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:top="-2dp"
        android:left="-2dp"
        android:right="-2dp"
        android:bottom="2dp">
        <selector >
            <item android:state_enabled="true"
                android:state_focused="true">
                <shape
                    android:shape="rectangle">
                    <stroke
                        android:width="2dp"
                        android:color="#6A9A3A"/>
                </shape>
            </item>
            <item android:state_enabled="true">
                <shape
                    android:shape="rectangle">
                    <stroke
                        android:width="1dp"
                        android:color="#000000"/>
                </shape>
            </item>
        </selector>
    </item>
</layer-list>


回答4:

add to your themes.xml this line:

<item name="colorAccent">@color/black</item>

this sets the default color for colorControlActivated which is used to tint widgets



回答5:

you can set android:backgroundTint="@color/blue" to change the color of the Edittext bottom line



回答6:

<EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:background="@drawable/text"
            android:ems="10"
            android:textColorHint="#fefefe"
            android:hint="@string/text1"
            android:textColor="#fefefe"
            android:inputType="textEmailAddress"
            android:layout_marginTop="10dp"
/>

Use the below code in your res/drawable/text.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:top="24.0dp">
   <shape >
      <solid android:color="#fefefe"  />
   </shape>
   </item>
</layer-list>


回答7:

You can use the android:background = "@color/black" for the api 21 or above 21 (This will apply for lollypop device or above versions) and for below versions you should use the style to the edittext.



回答8:

I had the same problem solved it by changing the color of the backgroundTint as follows -

android:backgroundTint="@color/light_color"



回答9:

If your using TextInputLayouts for EditText, we should change the following properties.

<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">@color/your color</item>
<item name="colorControlHighlight">@color/your color</item>

By default colour is colorAccent.