studio java android xml imagebutton

java - studio - flat button android



Fondo transparente en ImageButton con efecto ripple? (3)

Crea tu propio RippleDrawable y necesitas usar una máscara para el Ripple si vas a usar un fondo transparente.

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

Quiero eliminar mediante programación el fondo gris en ImageButton. He intentado muchos métodos de eliminarlo como -

imageButton.setBackgroundDrawable(null);

pero al implementarlos, no obtengo el efecto dominó en ImageButton al tocar. (Sin resaltar al tacto).

¿Hay alguna forma de eliminar el fondo pero conservar el efecto de rizo o resaltarlo?


Para tener un fondo transparente con efecto de ondulación, el Drawable de fondo debe ser un rippleDrawable, que puede ser transparente. Configúralo programáticamente de esta manera.

var mask = new android.graphics.drawable.GradientDrawable(); mask.setShape(android.graphics.drawable.GradientDrawable.RECTANGLE); mask.setColor(0xFF000000); // the color is irrelevant here, only the alpha mask.setCornerRadius(5); // you can have a rounded corner for the effect var rippleColorLst = android.content.res.ColorStateList.valueOf( android.graphics.Color.argb(255,50,150,255) // set the color of the ripple effect ); // aaaand var ripple = new android.graphics.drawable.RippleDrawable(rippleColorLst,null,mask); yourImageButton.setBackground(ripple);

(Lo siento por el código JavaScript / NativeScript, espero que todos puedan entenderlo)


Si android:background="?attr/selectableItemBackground" esto funciona, entonces creo que esta respuesta debería resolver su problema:

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