I changed the background color of the EditText to transperant. Now the EditText looks invisible when not focused. So how can I change the un-focused border color of EditText
You can create a linearlayout with background color the color which you want the border should be. Then place the Edit text inside this Linearlayout
and give some background color.
Eg : if border is grey then background for Linearview
is grey.
and edit text background black.
for width of border you can give padding = "1dp"
for border_width = "1dp"
.
You can use attr app:backgroundTint
if you only want to change the EditText border color:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:backgroundTint="#000"
/>
Create a XML file with the following in drawable (say backwithborder.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>
and for the EditText user attribute android:background="@drawable/backwithborder"
It's so late for answered but I wrote this code for new developers:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true">
<layer-list>
<item>
<shape android:shape="rectangle">
<stroke android:width="2dp" android:color="@color/components_colorPrimaryDark" />
<solid android:color="@color/components_white" />
</shape>
</item>
<item android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="@color/components_white" />
</shape>
</item>
</layer-list>
</item>
<item android:state_focused="false">
<layer-list>
<item>
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="@color/components_colorAccent" />
<solid android:color="@color/components_white" />
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/components_white" />
</shape>
</item>
</layer-list>
</item>
To set the background of edittext to transparent you can use following :
android:background="@null"
See following links
Android EditText Transparent Background
setting the background attribute to transparent in editext dynamically
Overriding onDraw() for an EditText widget with a blank implementation has no effect
http://www.androidworks.com/changing-the-android-edittext-ui-widget
Android OS itself adds border to EditText when user focus on it. The color depends on the OS version. Sometimes we might want to get rid of default focus border and there is a way to do it.
We can keep the background color as transparent to remove the EditText border on focus.
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00000000"
/>