jak zmienić kolor ostrości EditText w Androidzie
Jak mogę zmienić kolor ostrości (pomarańczowy)w polu EditText? Na kolor ostrości to mała obręcz wokół całej kontrolki i jest jasna pomarańczowy, gdy kontrola ma ostrość. Jak Mogę zmienić kolor tego skupić się na innym kolorze? Czy ktoś może mi pomóc w rozwiązaniu tego problemu? Z góry dzięki,
3 answers
Będziesz musiał utworzyć / zmodyfikować swój własny obraz NinePatch, aby zastąpić domyślny i użyć go jako tła swojego EditText. Jeśli zajrzysz do folderu SDK, pod platformą, a następnie res/drawable, powinieneś znaleźć obraz NinePatch dla stanu skupienia EditText. Jeśli to wszystko, co chcesz zmienić, możesz po prostu pobrać go do programu Photoshop lub dowolnego oprogramowania do edycji obrazów i zmienić pomarańczowy kolor na wybrany przez siebie kolor. Następnie zapisz to do folderu drawable, a zbuduj nowy StateListDrawable, na przykład coś takiego jak poniżej:
Edittext_modified_states.xml
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:state_pressed="true"
android:drawable="@android:drawable/edittext_pressed"
/> <!-- pressed -->
<item
android:state_focused="true"
android:drawable="@drawable/edittext_focused_blue"
/> <!-- focused -->
<item
android:drawable="@android:drawable/edittext_normal"
/> <!-- default -->
</selector>
Nie znam odręcznie rzeczywistych nazw domyślnych NinePatches dla EditText, więc zastąp je w razie potrzeby, ale kluczem tutaj jest po prostu użyć @android:drawable
obrazów dla tych, których nie zmodyfikowałeś (lub możesz skopiować je do folderu drawable twojego projektu), a następnie użyć zmodyfikowanego drawable dla Twojego stanu skupienia.
Możesz następnie ustawić to StateListDrawable jako tło dla TextView, jak tak:
<TextView
android:background="@drawable/edittext_modified_states"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-13 09:49:52
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:state_pressed="true"
android:color="colorcode"
/> <!-- pressed -->
<item
android:state_focused="true"
android:color="colorcode"
/> <!-- focused -->
<item
android:color="colorcode"
/> <!-- default -->
</selector>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-31 06:09:09
Nie musisz tworzyć rysunków xml. Może to być prostsze w kodzie. Przykład w kotlinie:
editText.onFocusChangeListener = OnFocusChangeListener { _, hasFocus ->
// colorLine, colorLineFocus is vars of ColorStateList
ViewCompat.setBackgroundTintList(editText, if (hasFocus) colorLineFocus else colorLine)
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-02 09:21:41