Tworzę EditText w moim pliku XML układu
Ale chcę zmienić linię kolorów w EditText z Holo na (na przykład) czerwony. Jak można to zrobić?
Jest to najlepsze narzędzie, którego możesz użyć do wszystkich widoków, i ZA DARMO wiele dzięki @ Jérôme Van Der Linden .
Generator kolorów Holo dla Androida pozwala w łatwy sposób tworzyć komponenty dla Androida, takie jak EditText
lub pokrętło z własnymi kolorami dla aplikacji na Androida. Wygeneruje wszystkie niezbędne dziewięć łatek plus powiązane pliki XML i style, które można skopiować bezpośrednio do projektu.
AKTUALIZACJA 1
Ta domena wydaje się wygasła, ale projekt jest otwartym źródłem, które można znaleźć tutaj
Spróbuj
ten obraz został umieszczony w tle EditText
android:background="@drawable/textfield_activated"
AKTUALIZACJA 2
W przypadku interfejsu API 21 lub nowszego można użyć android:backgroundTint
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Underline color change"
android:backgroundTint="@android:color/holo_red_light" />
Aktualizacja 3
teraz Mamy wsparcie z powrotemAppCompatEditText
Uwaga: Musimy użyć app: backgroundTint zamiast Androida: backgroundTint
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Underline color change"
app:backgroundTint="@color/blue_gray_light" />
Nie lubię poprzednich odpowiedzi. Najlepszym rozwiązaniem jest użycie:
android:backgroundTint
dlaEditText
działa tylko na API21 + . Z tego powodu musimy korzystać z biblioteki wsparcia iAppCompatEditText
.Uwaga: musimy użyć
app:backgroundTint
zamiastandroid:backgroundTint
Wersja AndroidX
źródło
Możesz także szybko zmienić kolor podkreślenia EditText poprzez przyciemnienie tła EditText w następujący sposób:
źródło
dla interfejsu API poniżej 21 możesz użyć atrybutu kompozycji w
EditText
kodzie poniżej kodu do pliku styluużyj tego stylu
EditText
jakoźródło
Programowo możesz spróbować:
źródło
myślę, że najlepszym sposobem jest temat:
źródło
Aby zmienić kolor podkreślenia Edittext:
Jeśli chcesz, aby cała aplikacja współdzieliła ten styl, możesz wykonać następujące czynności.
(1) przejdź do pliku styles.xml. Twój AppTheme, który dziedziczy element nadrzędny Theme.AppCompat.Light.DarkActionBar (w moim przypadku) będzie podstawowym elementem nadrzędnym wszystkich plików stylów w Twojej aplikacji. Zmień jego nazwę na „AppBaseTheme”. Utwórz inny styl pod nim, który ma nazwę AppTheme i dziedziczy po AppBaseTheme, który właśnie edytowałeś. Będzie to wyglądać następująco:
Następnie zmień „colorAccent” na dowolny kolor, jaki ma mieć kolor linii EditText.
(2) Jeśli masz inne foldery wartości ze stylem.xml, ten krok jest bardzo ważny. Ponieważ plik ten odziedziczy po poprzednim nadrzędnym pliku XML. Na przykład mam wartości-19 / styles.xml. Dotyczy to w szczególności KitKata i nowszych wersji. Zmień jego element nadrzędny na AppBaseTheme i upewnij się, że pozbyłeś się „colorAccent”, aby nie zastępował koloru elementu nadrzędnego. Musisz także zachować elementy specyficzne dla wersji 19. Wtedy będzie to wyglądać tak.
źródło
Jest to dość proste (wymagane: minimum API 21) ...
Keep Coding ........ :)
źródło
Kolor linii jest określony przez
EditText
właściwość tła. Aby to zmienić, należy zmienićandroid:background
plik układu.Powinienem zauważyć, że ten styl został osiągnięty dzięki zastosowaniu 9-łatowej szuflady. Jeśli spojrzysz na SDK, zobaczysz, że tłem
EditText
jest ten obraz:Aby to zmienić, możesz otworzyć go w programie do obróbki zdjęć i pokolorować go w żądanym kolorze. Zapisz go jako,
bg_edit_text.9.png
a następnie włóż do folderu, który możesz wyciągnąć. Teraz możesz zastosować go jako tło dla swojegoEditText
podobnego:źródło
Możesz zmienić kolor EditText programowo za pomocą następującego wiersza kodu:
edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));
źródło
Tło widżetów zależy od poziomu interfejsu API .
ALTERNATYWNY 1
Możesz podać niestandardowy obraz jako
EditText
tłoTwój obraz powinien wyglądać mniej więcej tak. Daje pożądany efekt.
ALTERNATYWNY 2
Ustaw ten plik XML na
EditText
atrybut tła.Będzie to miało taki sam wygląd i działanie
EditText
na każdym interfejsie API.źródło
Możesz zmienić kolor poprzez przyciemnienie tła
<EditText android:backgroundTint="@color/red"/>
źródło
drawable / bg_edittext.xml
Ustaw na EditText
źródło
Użyj tej metody ... i zmodyfikuj ją zgodnie z nazwami widoków. Ten kod działa świetnie.
źródło
Jeśli potrzebujesz płaskiej linii, możesz to łatwo zrobić za pomocą xml. Oto przykład xml:
Zastąp kształt selektorem, jeśli chcesz ustawić inną szerokość i kolor dla zogniskowanego tekstu edycyjnego.
źródło
Najlepszym rozwiązaniem jest, aby używać
AppCompatEditText
zbackgroundTint
atrybutemapp
nazw. to znaczykiedy
android:backgroundTint
go używamy , będzie działał tylko w API21 lub więcej, aleapp:backgroundTint
działa na wszystkich poziomach API, które robi Twoja aplikacja.źródło
Użyj właściwości android: background dla tego tekstu edycji. Prześlij do niego obraz folderu z możliwością rysowania. Na przykład,
źródło
** to robi z widokiem **
źródło
Wypróbuj następujący sposób, gdy zostanie użyty jako właściwość tła, przekonwertuje kolor dolnej linii EditText.
źródło
Można to po prostu zrobić, włączając to
android:theme="@style/AppTheme.AppBarOverlay
jako atrybut w editText i dodaj to<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
do swoich stylówźródło