更改edittext backgroundTint颜色

时间:2015-09-25 05:59:00

标签: android android-layout

这是我的editext,我想改变edittext的底线颜色。我使用android:backgroundTint,但它只在API 21及其上面工作。

<EditText
                android:id="@+id/password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="20dp"
                android:backgroundTint="@color/edittintcolor"
                android:drawableLeft="@drawable/lock"
                android:hint="  Password"
                android:padding="15dp"
                android:textColor="@color/edittintcolor"
                android:textColorHint="@color/edittintcolor"
                android:textSize="18sp"
                android:typeface="serif" />

我想使用XML或样式而不是在java代码中更改此颜色

5 个答案:

答案 0 :(得分:1)

bg.xml

 <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#FDEEF4" />
     <corners
          android:radius="15dp" />
    <stroke android:width="1dip" android:color="#F9966B" />



<EditText
    android:id="@+id/password"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@drawable/bd=g"
    android:hint="@string/password"
    android:inputType="textPassword" >

</EditText>

答案 1 :(得分:0)

为您的edittext背景创建一个可绘制的xml ..使用以下代码..

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent" />
            <!--background color of box-->
        </shape>
    </item>

    <item
        android:left="-2dp"
        android:right="-2dp"
        android:top="-2dp">
        <shape>
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="1dp"
                android:color="@android:color/white" />
                <!-- color of edittext line -->
        </shape>
    </item>
</layer-list>

并将该drawable xml设置为您的edittext背景。 :)

答案 2 :(得分:0)

在编辑文本中使用如下命令

<EditText
    android:id="@+id/password"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@drawable/edittextborder"
    android:hint="@string/password"
    android:inputType="textPassword" >

    <requestFocus />
</EditText>

然后在drawable文件夹

中继续下面的代码
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FDEEF4" />
 <corners
      android:radius="15dp" />
<stroke android:width="1dip" android:color="#F9966B" />

EDEEF4表示色调

答案 3 :(得分:0)

我们可以通过两种方式实现, 方法1: 我们可以使用selector drawable设计背景图像,

在drawable中创建backgroundEditText.xml,

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:state_window_focused="false"
    android:state_enabled="true"
    android:drawable="@drawable/textfield_default" />

<item
    android:state_window_focused="false"
    android:state_enabled="false"
    android:drawable="@drawable/textfield_disabled" />

<item
    android:state_pressed="true"
    android:drawable="@drawable/textfield_pressed" />

<item
    android:state_enabled="true"
    android:state_focused="true"
    android:drawable="@drawable/textfield_selected" />

<item
    android:state_enabled="true"
    android:drawable="@drawable/textfield_default" />

<item
    android:state_focused="true"
    android:drawable="@drawable/textfield_disabled_selected" />

<item
    android:drawable="@drawable/textfield_disabled" />

textfield_pressed.9.png [![textfield_pressed.9] [4] [4]

textfield_selected.9.png [![textfield_selected.9] [5] [5]

我们需要在布局文件

中为EditText设置backgroundEditText
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<EditText
    android:id="@+id/edit1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/edit1_text"
    android:inputType="text"
    android:background="@drawable/edit_text"
/>

</LinearLayout>

[![最终输出] [6]] [6]

方法2: 使用android.support.v4支持库,我们可以提供向后兼容性。

答案 4 :(得分:-1)

您可以使用this site生成自己的EditText样式。

生成drawable并将其设置为背景,例如:

android:background="@drawable/generated_theme_edit_text"