2015-05-21 10 views
16

Voglio programmaticamente rimuovere lo sfondo grigio in ImageButton. Ho provato molti metodo di rimozione si prova -Sfondo trasparente in ImageButton con effetto a catena?

imageButton.setBackgroundDrawable(null); 

ma sulla loro attuazione, non ottengo l'effetto complessivo sul ImageButton sul touch. (Nessuna evidenziazione al tocco).

C'è un modo per rimuovere lo sfondo ma mantenere l'effetto a catena o evidenziare.

+1

Eventuali duplicati di [Come impostare sfondo evidenziazione un LinearLayout?] (Http://stackoverflow.com/questions/8732662/how-to-set-background-highlight-to-a-linearlayout) – rds

risposta

27

Se android:background="?attr/selectableItemBackground" questo funziona quanto credo che questo risposta dovrebbe risolvere il problema:

https://stackoverflow.com/a/28087443/2534007

+3

O anche meglio, '' 'android: background ="? Attr/selectableItemBackgroundBorderless "' '' – tskulbru

7

Crea la tua RippleDrawable ed è necessario utilizzare la maschera per la Ripple se avete intenzione di utilizzare sfondo trasparente.

<!-- A red ripple masked against an opaque rectangle. --/> 
<ripple android:color="#ffff0000"> 
    <item android:id="@android:id/mask" 
     android:drawable="@android:color/white" /> 
</ripple> 
+1

' richiede il livello API 21 (corrente min è 17)' tutte le cose buone saranno ovviamente utili in alcuni anni quando gli utenti ho aggiornato ... –