Android: возможно ли динамически изменить цвет границы EditText?

Я хотел бы изменить оранжевую границу вокруг EditText. Например, когда ввод действителен, я хочу, чтобы он стал зеленым.

http://developer.android.com/guide/tutorials/views/images/hello-relativelayout.png

Однако я, кажется, не нахожу способ сделать это. Является ли это возможным?


person Peterdk    schedule 25.04.2010    source источник


Ответы (1)


Невозможно легко изменить оранжевую рамку, потому что на самом деле это 9-патч, то есть вся рамка + белый фон — это 9-патч, который Android использует по умолчанию. Для его установки также используется атрибут android:background.

Можно было бы приобрести копию 9-патча (он будет в вашем SDK), отредактировать цвет, чтобы сделать его зеленым, затем в коде настроить его так, чтобы ваш 9-патч устанавливался в качестве фона EditText при ввод действителен.

person Dan Lew    schedule 25.04.2010
comment
Кроме того, имейте в виду, что фон на самом деле представляет собой StateListDrawable, из которых PNG с оранжевой рамкой и девятью патчами является лишь одним из изображений для одного из состояний. - person CommonsWare; 25.04.2010