public class NoneRippleMaterialView extends MaterialCardView {
public NoneRippleMaterialView(Context context) {
this(context, null);
}
public NoneRippleMaterialView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public NoneRippleMaterialView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setClickable(boolean clickable) {
super.setClickable(clickable);
Drawable foreground = getForeground();
if (foreground instanceof InsetDrawable) {
Drawable drawable = ((InsetDrawable) foreground).getDrawable();
if (drawable instanceof LayerDrawable) {
LayerDrawable layerDrawable = (LayerDrawable) drawable;
if (layerDrawable.getNumberOfLayers() >= 2) {
setForeground(layerDrawable.getDrawable(1));
return;
}
}
}
MaterialShapeDrawable materialShapeDrawable = new MaterialShapeDrawable();
ShapeAppearanceModel shapeAppearanceModel = new ShapeAppearanceModel();
shapeAppearanceModel.withCornerSize(getRadius());
ColorStateList cardForegroundColor = getCardForegroundColor();
ColorStateList colorStateList;
colorStateList = cardForegroundColor;
materialShapeDrawable.setFillColor(colorStateList);
materialShapeDrawable.setShapeAppearanceModel(shapeAppearanceModel);
materialShapeDrawable.setStroke(getStrokeWidth(), getStrokeColorStateList());
setForeground(materialShapeDrawable);
}
}