BottomAppBarTopEdgeTreatment

public class BottomAppBarTopEdgeTreatment
extends EdgeTreatment

java.lang.Object
   ↳ com.google.android.material.shape.EdgeTreatment
     ↳ com.google.android.material.bottomappbar.BottomAppBarTopEdgeTreatment


Top edge treatment for the bottom app bar which "cradles" a circular FloatingActionButton.

This edge features a downward semi-circular cutout from the edge line. The two corners created by the cutout can optionally be rounded. The circular cutout can also support a vertically offset FloatingActionButton; i.e., the cut-out need not be a perfect semi-circle, but could be an arc of less than 180 degrees that does not start or finish with a vertical path. This vertical offset must be positive.

Summary

Public constructors

BottomAppBarTopEdgeTreatment(float cradleDiameter, float roundedCornerRadius, float cradleVerticalOffset)

Public methods

float getCradleVerticalOffset()
void getEdgePath(float length, float interpolation, ShapePath shapePath)

Generates a ShapePath for this edge treatment.

float getHorizontalOffset()
void setCradleVerticalOffset(float cradleVerticalOffset)
void setHorizontalOffset(float horizontalOffset)

Set the horizontal offset, in pixels, of the cradle from center.

Inherited methods

From class com.google.android.material.shape.EdgeTreatment
From class java.lang.Object

Public constructors

BottomAppBarTopEdgeTreatment

BottomAppBarTopEdgeTreatment (float cradleDiameter, 
                float roundedCornerRadius, 
                float cradleVerticalOffset)

Parameters
cradleDiameter float: the diameter, in pixels, of the semi-circular cutout.

roundedCornerRadius float: the radius, in pixels, of the rounded corners created by the cutout. A value of 0 will produce a sharp cutout.

cradleVerticalOffset float: vertical offset, in pixels, of the FloatingActionButton being cradled. An offset of 0 indicates the vertical center of the FloatingActionButton is positioned on the top edge.

Public methods

getCradleVerticalOffset

float getCradleVerticalOffset ()

Returns
float vertical offset, in pixels, of the FloatingActionButton being cradled. An offset of 0 indicates the vertical center of the FloatingActionButton is positioned on the top edge.

getEdgePath

void getEdgePath (float length, 
                float interpolation, 
                ShapePath shapePath)

Generates a ShapePath for this edge treatment.

EdgeTreatments have an origin of (0, 0) and a destination of (0, length) (i.e. they represent the top edge), and are be automatically rotated and scaled as necessary when applied to other edges. Only the horizontal, top EdgeTreatment needs to be defined in order to apply it to all four edges.

Parameters
length float: the length of the edge.

interpolation float: the interpolation of the edge treatment. Ranges between 0 (none) and 1 (fully) interpolated. Custom edge treatments can implement interpolation to support shape transition between two arbitrary states. Typically, a value of 0 indicates that the custom edge treatment is not rendered (i.e. that it is a straight line), and a value of 1 indicates that the treatment is fully rendered. Animation between these two values can "heal" or "reveal" an edge treatment.

shapePath ShapePath: the ShapePath that this treatment should write to.

getHorizontalOffset

float getHorizontalOffset ()

Returns
float the horizontal offset, in pixels, of the cradle from center.

setCradleVerticalOffset

void setCradleVerticalOffset (float cradleVerticalOffset)

Parameters
cradleVerticalOffset float: vertical offset, in pixels, of the FloatingActionButton being cradled. An offset of 0 indicates the vertical center of the FloatingActionButton is positioned on the top edge.

setHorizontalOffset

void setHorizontalOffset (float horizontalOffset)

Set the horizontal offset, in pixels, of the cradle from center.

Parameters
horizontalOffset float