# RippleDrawableCompat

[View Source](https://github.com/material-components/material-components-android/blob/1.14.0/lib/java/com/google/android/material/ripple/RippleDrawableCompat.java)

*** ** * ** ***


```
public class RippleDrawableCompat implements Shapeable
```

<br />

*** ** * ** ***

A compat Drawable that is used to provide an overlay for pressed, focused, and hovered states (only when in enabled). This is intended to be used pre-Lollipop.

This Drawable is a `https://developer.android.com/reference/com/google/android/material/shape/MaterialShapeDrawable` so that it can be shaped to match a MaterialShapeDrawable background.

Unlike the framework android.graphics.drawable.RippleDrawable, this will **not** apply different alphas for pressed, focused, and hovered states and it does not provide a ripple animation for the pressed state.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#RippleDrawableCompat(com.google.android.material.shape.ShapeAppearanceModel)(https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel shapeAppearanceModel)` Creates a `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat` with the given shape that will only draw when enabled and at least one of: pressed, focused, or hovered. |

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#draw(Canvas)(Canvas canvas)` |
| `ConstantState` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#getConstantState()()` |
| `SpringForce` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#getCornerSpringForce()()` |
| `int` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#getOpacity()()` |
| `https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#getShapeAppearanceModel()()` Get the `https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel` containing the path that will be rendered in this drawable. |
| `https://developer.android.com/reference/com/google/android/material/shape/StateListShapeAppearanceModel` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#getStateListShapeAppearanceModel()()` |
| `boolean` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#isStateful()()` |
| `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#mutate()()` |
| `void` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#setAlpha(int)(int alpha)` |
| `void` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#setColorFilter(ColorFilter)(ColorFilter colorFilter)` |
| `void` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#setCornerSpringForce(SpringForce)(SpringForce springForce)` |
| `void` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#setShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel)(https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel shapeAppearanceModel)` Sets the `https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel` that defines the shape. |
| `void` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#setStateListShapeAppearanceModel(com.google.android.material.shape.StateListShapeAppearanceModel)( https://developer.android.com/reference/com/google/android/material/shape/StateListShapeAppearanceModel stateListShapeAppearanceModel )` |
| `void` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#setTint(int)(int tintColor)` |
| `void` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#setTintList(ColorStateList)(ColorStateList tintList)` |
| `void` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#setTintMode(PorterDuff.Mode)(Mode tintMode)` |

| ### Protected methods |
|---|---|
| `void` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#onBoundsChange(Rect)(Rect bounds)` |
| `boolean` | `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat#onStateChange(int[])(int[] stateSet)` |

## Public constructors

### RippleDrawableCompat

```
public RippleDrawableCompat(ShapeAppearanceModel shapeAppearanceModel)
```

Creates a `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat` with the given shape that will only draw when enabled and at least one of: pressed, focused, or hovered.

| Parameters |
|---|---|
| `https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel shapeAppearanceModel` | The shape for the ripple. |

## Public methods

### draw

```
public void draw(Canvas canvas)
```

### getConstantState

```
public ConstantState getConstantState()
```

### getCornerSpringForce

```
public SpringForce getCornerSpringForce()
```

### getOpacity

```
public int getOpacity()
```

### getShapeAppearanceModel

```
public ShapeAppearanceModel getShapeAppearanceModel()
```

Get the `https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel` containing the path that will be rendered in this drawable.

| Returns |
|---|---|
| `https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel` | the current model. |

### getStateListShapeAppearanceModel

```
public StateListShapeAppearanceModel getStateListShapeAppearanceModel()
```

### isStateful

```
public boolean isStateful()
```

### mutate

```
public RippleDrawableCompat mutate()
```

### setAlpha

```
public void setAlpha(int alpha)
```

### setColorFilter

```
public void setColorFilter(ColorFilter colorFilter)
```

### setCornerSpringForce

```
public void setCornerSpringForce(SpringForce springForce)
```

### setShapeAppearanceModel

```
public void setShapeAppearanceModel(ShapeAppearanceModel shapeAppearanceModel)
```

Sets the `https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel` that defines the shape.

### setStateListShapeAppearanceModel

```
public void setStateListShapeAppearanceModel(
    StateListShapeAppearanceModel stateListShapeAppearanceModel
)
```

### setTint

```
public void setTint(int tintColor)
```

### setTintList

```
public void setTintList(ColorStateList tintList)
```

### setTintMode

```
public void setTintMode(Mode tintMode)
```

## Protected methods

### onBoundsChange

```
protected void onBoundsChange(Rect bounds)
```

### onStateChange

```
protected boolean onStateChange(int[] stateSet)
```