it-swarm.com.de

EditText unterstreicht die Texteigenschaft

Ich möchte die blaue Farbe unter dem Bearbeitungstext ändern. Ich weiß nicht, um welche Eigenschaft es sich handelt. 

Ich habe versucht, eine andere Hintergrundfarbe dafür zu verwenden, aber es hat nicht funktioniert.

Ich habe unten ein Bild angehängt:

enter image description here

99

Es ist eigentlich ziemlich einfach, die Unterstreichungsfarbe eines EditText programmgesteuert festzulegen (nur eine Codezeile).

So stellen Sie die Farbe ein:

editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);

So entfernen Sie die Farbe:

editText.getBackground().clearColorFilter();

Hinweis: Wenn für EditText focus aktiviert ist, wird die von Ihnen festgelegte Farbe nicht wirksam, sondern sie hat eine Fokusfarbe.

API-Referenz:

Drawable # setColorFilter

Drawable # clearColorFilter

83
Jing Li

Verwenden Sie Android:backgroundTint="" in Ihrem EditText xml-Layout.

Für api <21 können Sie AppCompatEditText aus der Support-Bibliothek und dann app:backgroundTint="" verwenden.

75

Sie müssen für jeden Status der EditText (Fokus, aktiviert, aktiviert) ein anderes Hintergrundbild und keine Farbe verwenden.

http://Android-holo-colors.com/

Auf der Website oben können Sie Bilder aus vielen Komponenten des Holo-Themas erhalten. Wählen Sie einfach "EditText" und die gewünschte Farbe aus. Sie können eine Vorschau unten auf der Seite sehen.

Laden Sie die ZIP-Datei herunter, und kopieren Sie die Ressourcen in Ihr Projekt (Bilder und XML).

wenn Ihr XML benannt ist: apptheme_edit_text_holo_light.xml (oder etwas ähnliches):

  1. Gehen Sie zu Ihrer XML-Datei "styles.xml" und fügen Sie den benutzerdefinierten EditText-Stil hinzu:

    <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>
    
  2. Tun Sie dies einfach in Ihrer EditText:

    <EditText
       Android:layout_width="wrap_content"
       Android:layout_height="wrap_content"
       style="@style/EditTextCustomHolo"/>
    

Und das ist es, ich hoffe es hilft dir.

38
Akariuz

Dies funktioniert gut für alte und neue Android-Versionen (funktioniert auch mit API 10!).

Definieren Sie diesen Stil in Ihrem 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>

Legen Sie dies nun in Ihrem XML als Design und Stil fest (style, um textColor und theme, um alle anderen Dinge festzulegen):

<EditText
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:inputType="text"
    style="@style/EditText.Login"
    Android:theme="@style/EditText.Login"/>

Bearbeiten

Diese Lösung führt bei neueren Android-Versionen (ab Lollipop oder Marshmallow) zu einer kleinen UI-Störung, bei der die Auswahlgriffe unterstrichen sind.

Dieses Problem wird in diesem Thread behandelt. (Ich habe diese Lösung nicht persönlich ausprobiert)

20
Sufian

sie können Underline of EditText color ändern, indem Sie es in styles.xml angeben. Fügen Sie in Ihrem App-Design styles.xml Folgendes hinzu.

<item name="Android:textColorSecondary">@color/primary_text_color</item> 

Wie von ana im Kommentarbereich hervorgehoben

  <item name="Android:colorControlActivated">@color/black</item>

wenn Sie diese Einstellung in einem Designstil vornehmen, können Sie die Farbe einer Edittext-Unterstreichung ändern. 

17
Dharani Kumar

Sie müssen also eine neue XML-Datei in Ihrem Ordner erstellen.

In diese Datei fügen Sie diesen Code ein:

<?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>
</layer-list>

Und in deinem EditText setzen

Android:background="@drawable/your_drawable"

Sie können mit Ihrer zeichnerischen XML-Datei spielen, Ecken festlegen, Auffüllungen usw.

12
Vulovic Vukasin

Definieren Sie in Ihrem App-Stil die Eigenschaft colorAccent . Hier finden Sie ein Beispiel

<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>
9
Roberto

Sie können die Farbe von EditText programmgesteuert ändern, indem Sie einfach diese Codezeile verwenden:

edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));

3
matin ashtiani

Verwenden Sie den folgenden Code, um die Hintergrundfarbe des Randes des Bearbeitungstextes zu ändern.

Neue XML-Datei unter Zeichnen erstellen.

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>

und fügen Sie es als Hintergrund für Ihren Bearbeitungstext hinzu

Android:background="@drawable/abc"
1
InnocentKiller

Um die Farbe der Grundlinie zu ändern, können Sie dies in Ihrem App-Design verwenden:

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

Um die Farbe der schwebenden Beschriftung zu ändern, schreiben Sie das folgende Thema:

<style name="TextAppearence.App.TextInputLayout" parent="@Android:style/TextAppearance">
<item name="Android:textColor">#4ffd04[![enter image description here][1]][1]</item>
</style>

und verwende dieses Thema in deinem Layout:

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

 enter image description here

1
SAndroidD

Ändern Sie Ihre colorAccent, welche Farbe Sie für colorAccent verwenden müssen, und führen Sie die Ausgabe aus

0
MD Khali

Wenn Sie keine Geräte mit API <21 unterstützen müssen, verwenden Sie backgroundHint in XML, zum Beispiel:

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

Für eine bessere Unterstützung und Rückschläge verwenden Sie die @Akariuz-Lösung. _. BackgroundHint ist die schmerzloseste Lösung, jedoch nicht abwärtskompatibel.

0
MoMo