Как изменить цвет фокуса (оранжевый) в окне EditText? цвет фокуса - небольшой обод вокруг всего элемента управления и яркий оранжевый, когда элемент управления имеет фокус. Как я могу изменить цвет этого сосредоточиться на другом цвете? Может ли кто-нибудь помочь мне в решении этой проблемы? Спасибо заранее,
Как изменить цвет фокуса EditText в Android
Ответ 1
Вам нужно будет создать/изменить собственное изображение NinePatch, чтобы заменить его по умолчанию, и использовать его в качестве фона вашего EditText. Если вы посмотрите в свою папку SDK, под вашей платформой, затем res/drawable, вы должны найти изображение NinePatch для состояния фокусировки EditText. Если это все, что вы хотите изменить, вы можете просто вставить его в Photoshop или любое другое программное обеспечение для редактирования изображений и изменить оранжевый цвет на выбранный вами цвет. Затем сохраните это в своей папке с возможностью вырезания и создайте новый StateListDrawable, например, что-то вроде ниже:
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>
Я не знаю, как правильно использовать имена NeroPatches по умолчанию для EditText, поэтому замените их по мере необходимости, но здесь нужно просто использовать образы @android:drawable
для тех, которые вы не изменили (или вы можно скопировать их в папку для рисования проекта), а затем использовать измененный для вас шаблон для вашего сфокусированного состояния.
Затем вы можете установить этот StateListDrawable в качестве фона для вашего TextView, например:
<TextView
android:background="@drawable/edittext_modified_states"
Ответ 2
<?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>
Ответ 3
Вам не нужно создавать xml-чертежи. Это может быть проще в коде. Пример в котлин:
editText.onFocusChangeListener = OnFocusChangeListener { _, hasFocus ->
// colorLine, colorLineFocus is vars of ColorStateList
ViewCompat.setBackgroundTintList(editText, if (hasFocus) colorLineFocus else colorLine)
}