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,

Author: Anson VanDoren, 2011-01-03

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"
 62
Author: kcoppock,
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>
 0
Author: Ketan Ahir,
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)
}
 0
Author: comm1x,
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