private void drawCompatShadow ( Canvas canvas ) { // Draw the fake shadow for each of the corners and edges. for ( int index = 0 ; index < 4 ; index ++ ) { cornerShadowOperation [ index ] . draw ( shadowRenderer , drawableState . shadowCompatRadius , canvas ) ; edgeShadowOperation [ index ] . draw ( shadowRenderer , drawableState . shadowCompatRadius , canvas ) ; } }
Draws a shadow using gradients which can be used in the cases where native elevation can t . This draws the shadow in multiple parts . It draws the shadow for each corner and edge separately . Then it fills in the center space with the main shadow colored paint . If there is no shadow offset this will skip the drawing of the center filled shadow since that will be completely covered by the shape .