# Shapeable

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

*** ** * ** ***


```
public interface Shapeable
```

<br />

Known direct subclasses [Chip](https://developer.android.com/reference/com/google/android/material/chip/Chip), [FloatingActionButton](https://developer.android.com/reference/com/google/android/material/floatingactionbutton/FloatingActionButton), [MaskableFrameLayout](https://developer.android.com/reference/com/google/android/material/carousel/MaskableFrameLayout), [MaterialButton](https://developer.android.com/reference/com/google/android/material/button/MaterialButton), [MaterialCardView](https://developer.android.com/reference/com/google/android/material/card/MaterialCardView), [MaterialShapeDrawable](https://developer.android.com/reference/com/google/android/material/shape/MaterialShapeDrawable), [RippleDrawableCompat](https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat), [ShapeableImageView](https://developer.android.com/reference/com/google/android/material/imageview/ShapeableImageView)

|---|---|
| `https://developer.android.com/reference/com/google/android/material/chip/Chip` | Chips are compact elements that represent an attribute, text, entity, or action. |
| `https://developer.android.com/reference/com/google/android/material/floatingactionbutton/FloatingActionButton` | Floating action buttons are used for a special type of promoted action. |
| `https://developer.android.com/reference/com/google/android/material/carousel/MaskableFrameLayout` | A FrameLayout than is able to mask itself and all children. |
| `https://developer.android.com/reference/com/google/android/material/button/MaterialButton` | A convenience class for creating a new Material button. |
| `https://developer.android.com/reference/com/google/android/material/card/MaterialCardView` | Provides a Material card. |
| `https://developer.android.com/reference/com/google/android/material/shape/MaterialShapeDrawable` | Base drawable class for Material Shapes that handles shadows, elevation, scale and color for a generated path. |
| `https://developer.android.com/reference/com/google/android/material/ripple/RippleDrawableCompat` | A compat Drawable that is used to provide an overlay for pressed, focused, and hovered states (only when in enabled). |
| `https://developer.android.com/reference/com/google/android/material/imageview/ShapeableImageView` | An ImageView that draws the bitmap with the provided Shape. |

Known indirect subclasses [ChipDrawable](https://developer.android.com/reference/com/google/android/material/chip/ChipDrawable), [CircularRevealCardView](https://developer.android.com/reference/com/google/android/material/circularreveal/cardview/CircularRevealCardView), [ExtendedFloatingActionButton](https://developer.android.com/reference/com/google/android/material/floatingactionbutton/ExtendedFloatingActionButton), [ListItemCardView](https://developer.android.com/reference/com/google/android/material/listitem/ListItemCardView), [TransformationChildCard](https://developer.android.com/reference/com/google/android/material/transformation/TransformationChildCard)

|---|---|
| `https://developer.android.com/reference/com/google/android/material/chip/ChipDrawable` | ChipDrawable contains all the layout and draw logic for `https://developer.android.com/reference/com/google/android/material/chip/Chip`. |
| `https://developer.android.com/reference/com/google/android/material/circularreveal/cardview/CircularRevealCardView` | A CircularRevealWidget wrapper for `https://developer.android.com/reference/com/google/android/material/card/MaterialCardView`. |
| `https://developer.android.com/reference/com/google/android/material/floatingactionbutton/ExtendedFloatingActionButton` | Extended floating action buttons are used for a special type of promoted action. |
| `https://developer.android.com/reference/com/google/android/material/listitem/ListItemCardView` | A `https://developer.android.com/reference/com/google/android/material/card/MaterialCardView` that is styled as a list item and can be swiped in a `https://developer.android.com/reference/com/google/android/material/listitem/ListItemLayout` with a sibling `https://developer.android.com/reference/com/google/android/material/listitem/RevealableListItem`. |
| `https://developer.android.com/reference/com/google/android/material/transformation/TransformationChildCard` | **This class is deprecated.** Use `https://developer.android.com/reference/com/google/android/material/transition/MaterialContainerTransform` instead. <br /> |

*** ** * ** ***

Provides a mechanism to uniformly modify the `https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel` that backs a component or android.graphics.drawable.Drawable's shape.

## Summary

| ### Public methods |
|---|---|
| `abstract https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel` | `https://developer.android.com/reference/com/google/android/material/shape/Shapeable#getShapeAppearanceModel()()` Returns the `https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel` used for the shape definition. |
| `abstract void` | `https://developer.android.com/reference/com/google/android/material/shape/Shapeable#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. |

## Public methods

### getShapeAppearanceModel

```
abstract ShapeAppearanceModel getShapeAppearanceModel()
```

Returns the `https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel` used for the shape definition.

This `https://developer.android.com/reference/com/google/android/material/shape/ShapeAppearanceModel` can be modified to change the shape.

### setShapeAppearanceModel

```
abstract void setShapeAppearanceModel(ShapeAppearanceModel shapeAppearanceModel)
```

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