Изменение цвета линии EditText-Android

могу ли я изменить цвет линии на EditText. Когда активен, он имеет какой-то зеленоватый цвет.Image

Это можно изменить только цвет линии, когда и как я могу это сделать...?

9 ответов


вам нужно установить источник фона для текста редактирования.

  1. создать его http://android-holo-colors.com/
  2. чем вы можете применить сгенерированный drawable в качестве фона, как android:background="@drawable/my_theme_edit_text" для пользовательского EditText. Или вы можете установить этот фон в своей теме приложения - вы найдете пример .zip-файл с этого сайта

вы можете установить фон edittext в прямоугольник с минусом заполнения слева, справа и сверху, чтобы достичь этого.

вот пример xml для установки разных цветов линий для сфокусированного и не сфокусированного edittext, просто установите его в качестве фона 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>

добавить в темы.в XML эта строка:

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

это устанавливает цвета по умолчанию для colorControlActivated который используется для оттенка виджетов


вы тут:

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

вы можете установить android: backgroundTint= "@color / blue", чтобы изменить цвет нижней строки Edittext


<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"
/>

используйте приведенный ниже код в 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>

можно использовать android:background = "@color/black" for the api 21 или выше 21 (это будет применяться для устройства lollypop или выше версий), а для версий ниже вы должны использовать стиль для edittext.


У меня была такая же проблема решил его, изменив цвет backgroundTint следующим образом -

android: backgroundTint= "@color / light_color"


Если вы используете TextInputLayouts для EditText, мы должны изменить следующие свойства.

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

по умолчанию цвет colorAccent.