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