Dovrai creare/modificare la tua immagine NinePatch per sostituire quella predefinita e usarla come sfondo del tuo EditText. Se guardi nella tua cartella SDK, sotto la tua piattaforma, quindi res/drawable, dovresti trovare l'immagine di NinePatch per lo stato attivo di EditText. Se è tutto ciò che vuoi cambiare, puoi semplicemente inserirlo in Photoshop, o qualsiasi altro software di editing di immagini che ti piace di più, e cambiare il colore arancione in un colore a tua scelta. Quindi salvare che nella cartella drawable, e costruire un nuovo StateListDrawable, ad esempio, qualcosa di simile al seguito:
<?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>
Non so due piedi i nomi reali per i NinePatches predefinite per l'EditText, in modo da sostituire quelle, se necessario , ma la chiave qui è usare semplicemente le immagini @android:drawable
per quelle che non hai modificato (o puoi copiarle nella cartella drawable del tuo progetto), e quindi usare il tuo drawable modificato per il tuo stato focalizzato.
È quindi possibile impostare questo StateListDrawable come sfondo per il TextView, in questo modo:
<TextView
android:background="@drawable/edittext_modified_states"
Su alcune versioni del sistema operativo, si potrebbe anche essere necessario copiare i normali foto non modificate di stato nelle applicazioni cartella drawable per ottenere questo lavoro. Quindi nelle cartelle disegnabili della tua applicazione hai l'immagine modificata dello stato di messa a fuoco e anche le altre immagini di stato originali non modificate.
fonte
2012-07-14 16:56:14
+ 1, c'è qualche Stato per ** edittxview.setError ("Error"); ** come Android: state_pressed = "true" (android: state_seterror = "true")! Voglio solo cambiare il colore del bordo quando viene attivato l'avviso di convalida setError! –
questo è quello che sto cercando [change-background-of-edittexts-error-message] (http://stackoverflow.com/questions/14127710/change-background-of-edittexts-error-message) –