Possiedo un ImageButton con un'immagine di sfondo con qualche trasparenza. Per impostazione predefinita, il pulsante assume uno sfondo grigio dove sono i pixel di trasparenza, a causa del tema Holo.Light. Ho provato a impostare il colore di sfondo del pulsante per la trasparenza tramite il metodo setBackgroundColor(Color.TRANSPARENT)
. Funziona bene e fa ciò di cui ho bisogno tranne che ora il mio pulsante non ha più il colore azzurro quando è focalizzato/premuto e sembra piuttosto piatto (senza bordi intorno, quindi sembra un'immagine).Colore sfondo Android ImageButton
Ho cercato su google e ho visto che è possibile assegnare i selettori come spiegato here ma ciò significherebbe che devo specificare un'immagine per stato del pulsante e non voglio farlo. Voglio ereditare i focus/i colori premuti dal tema, ma sovrascrivere il normale sfondo del pulsante (quando non premuto/focalizzato) in trasparente anziché in grigio. Come posso ottenerlo ?? Si prega di fornire un esempio funzionante in quanto ho provato molte combinazioni diverse senza successo.
Modifica Grazie a tutti per l'aiuto. Ho capito come far funzionare questo lavoro senza dover ricreare la stessa immagine con gli stati focalizzati e premuti per ogni pulsante!
Ecco la mia soluzione:
mio pulsante è definito come:
<ImageButton
android:id="@+id/ImageButton05"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/button" />
E il mio background di file XML (intitolato button.xml) è definito come segue:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item android:drawable="@drawable/btn_default_pressed_holo_light"></item>
<item android:drawable="@drawable/network_wifi"></item>
</layer-list>
</item>
<item android:state_focused="true">
<layer-list>
<item android:drawable="@drawable/btn_default_focused_holo_light"></item>
<item android:drawable="@drawable/network_wifi"></item>
</layer-list>
</item>
<item android:state_hovered="true">
<layer-list>
<item android:drawable="@drawable/btn_default_focused_holo_light"></item>
<item android:drawable="@drawable/network_wifi"></item>
</layer-list>
</item>
<item>
<layer-list>
<item android:drawable="@drawable/btn_default_normal_holo_light"></item>
<item android:drawable="@drawable/network_wifi"></item>
</layer-list>
</item>
</selector>
le immagini non contengono alcun grigio .. sono trasparenti come ho spiegato – Ayyoudy
il focalizzato fa, il premuto ha una casella blu scuro anziché grigio. vedi la mia modifica. Dovresti modificare la "scatola" interna nelle immagini sopra per lasciare solo l'effetto di illuminazione a bagliore. Puoi modificare la tua domanda e pubblicare una delle tue dichiarazioni xml di imagebutton. Forse sto fraintendendo quello che stai cercando di fare, questo renderà più chiaro a me. – FoamyGuy