Ich habe ein Problem mit EditText Hintergrund wie folgt
%Vor%Alttext http://i765.photobucket.com/albums/xx299/trietrinhtrinh/edittext.jpg
Nach dem Versuch, den Hintergrund einzustellen, sieht es schlimmer aus
%Vor%Alttext http://i765.photobucket.com/albums/xx299/trietrinhtrinh/edittext2.jpg
Was passiert mit EditText Hintergrund? Wie kann EditText den Standard-Stil beibehalten?
Wenn Sie Ihren EditText-Hintergrund auf eine Farbe setzen, unterdrücken Sie den Standardhintergrund von Android, der wahrscheinlich ist ein Nine Patch , aber definitiv nicht nur eine einfache Farbe. Als Ergebnis erhalten Sie eine einfachste Form von EditText - eine quadratische Box. Hier ist eine etwas veraltete Liste mit integrierten Zeichenabbildern , um Ihnen eine Idee zu geben
Hier ist 2 Lösung, um den Hintergrund von EditText zu ändern, den ich vorher untersucht habe, hoffe, dass es Ihnen helfen kann:
★ Problem : Wenn Hintergrund zu EditText gesetzt wird, sieht es so schrecklich aus
★ Analysys : EditText verwendete 9-Pfad-Bild für den Hintergrund. Sie verwendeten einen Selektor, um die Hintergrundbildbasis auf den aktuellen Zustand von EditText zu ändern (Aktivieren / Fokus / Drücken, Standard)
★ Es gibt zwei Lösungen, um dieses Problem zu lösen, jede Lösung hat sowohl Vorteile als auch Nachteile:
★ Lösung1 : Erstellen Sie selbst EditText (folgen Sie dieser Lösung, wir haben die Ansicht EditText frei ändern.
▲ Vorteil : Die EditText-Ansicht wird frei gerendert und folgt Ihrem Zweck. Sie müssen Ninepath-Bild nicht als aktuelles Werkzeug von Android EditText erstellen. (Sie müssen Provider IF in Ihrem EditText, um den Hintergrund nahtlos zu ändern basierend auf dem Status von EditText (Enable / Focus ....) Wieder verwendbar und benutzerdefinierter, falls Sie die Hintergrundfarbe ändern oder mehr Farbe hinzufügen möchten
▼ Nachteil : Nehmen Sie sich viel Mühe, um Ihren benutzerdefinierten EditText zu erstellen und zu testen. (Ich wähle Lösung 2, also habe kein Demowerkzeug von Lösung 1, falls jemand dieser Lösung folgt, kannst du uns deinen Democode mitteilen)
★ Lösung2 : Benutzter Selektor als Android-Gerät
❶Erstellen Sie den Aufruf der XML-Datei edittext_selector.xml
%Vor%❷Ein EditText xml set selector:
%Vor%★ Hinweis :
● In diesem Demo-Code wurde ich etwas Verhalten des Ansichtszustandes entfernen, verweisen android implementieren für Detailverhalten (Fokus / Unfokus, aktivieren / deaktivieren, drücken, ausgewählt ...)
● Achten Sie auf die Reihenfolge der Artikel in Ihrem Selektor. Die Differenzreihenfolge des Elements in der Selektor-XML-Datei hat einen unterschiedlichen Hintergrund.
▲ Vorteil : Einfach, erstellen Sie einfach Selektor und setzen Sie Selektor auf Hintergrund, für den Fall, dass Sie mehr Farbe wollen, setzen Sie einfach mehr Auswahl und dann durch Code.
▼ Nachteil : Versuchen Sie, ein 9-Pfad-Bild für den Selektor zu erstellen, falls Sie die Farbe ändern oder mehr Farbe hinzufügen möchten, müssen Sie mehr Bild und Selektor erstellen. Es ist also weniger robust als Solution1
Dies ist meine Untersuchung zu Handler Hintergrund des Bildes, so kann es richtig oder falsch, wenn Sie eine bessere Lösung oder zu erklären, fühlen sich frei, mit uns zu teilen.
Ich war implementieren Lösung 2 und es hat funktioniert.
Meine Lösung ist eine einzelne Codezeile:
%Vor%Es bricht so zusammen:
Personen mit Kenntnissen der Bildbearbeitungssoftware können den Modus erkennen. Jeder Modus hat eine gewisse Auswirkung darauf, wie die Farbe auf das Hintergrundbild angewendet wird. Um einfach die Farbe des Bildes zu "überschreiben" und dabei seine Farbverläufe, Ränder und dergleichen beizubehalten, verwenden Sie MULTIPLY
.
Sie müssen das Bild nicht erstellen. Es gibt ein eingebautes Bild im Android-System, das Sie verwenden können.So bearbeiten Sie Ihren EditText in XML wie folgt: -
%Vor% Beachten Sie diese Zeile: android:background="@android:drawable/editbox_background_normal"
Wie ich denke, sollten Sie die Hintergrundfarbe ändern, nicht den Hintergrund. Weil es xml benutzerdefinierte Form verwendet.
Ein Zeichen, das als Hintergrund verwendet werden kann. Dies kann entweder ein Verweis auf eine vollständig ausklappbare Ressource sein (z. B. ein PNG-Bild, 9-Patch, XML-Zustandslistenbeschreibung usw.) oder eine Vollfarbe wie #ff000000
(schwarz).
Kann eine Referenz auf eine andere Ressource in der Form @[+][package:]type:name
oder auf ein Designattribut in der Form ?[package:][type:]nam
e.
Kann ein Farbwert in Form von #rgb
, #argb
, #rrggbb
oder #aarrggbb
sein.
Sehen Sie sich Ссылка an, wenn Sie Ihren EditText formatieren möchten.
Ich musste SRC_ATOP dafür verwenden, um für mich zu arbeiten
%Vor%Tags und Links android