GraphicsLayerScope
-
Cmn
@PlacementScopeMarker
interface GraphicsLayerScope : Density
A scope which can be used to define the effects to apply for the content, such as scaling (scaleX, scaleY), rotation (rotationX, rotationY, rotationZ), opacity (alpha), shadow (shadowElevation, shape), and clipping (clip, shape).
Summary
Public properties |
||
|---|---|---|
Float |
The alpha of the drawn area. |
Cmn
|
open Color |
Sets the color of the ambient shadow that is drawn when |
Cmn
|
open BlendMode |
BlendMode to use when drawing this layer to the destination. |
Cmn
|
Float |
Sets the distance along the Z axis (orthogonal to the X/Y plane on which layers are drawn) from the camera to this layer. |
Cmn
|
Boolean |
Set to |
Cmn
|
open ColorFilter? |
ColorFilter applied when drawing this layer to the destination. |
Cmn
|
open CompositingStrategy |
Determines the |
Cmn
|
open LayerOutsets |
Adds to the size of the layer increasing its bounds. |
Cmn
|
open RenderEffect? |
Configure the |
Cmn
|
Float |
The rotation, in degrees, of the contents around the horizontal axis in degrees. |
Cmn
|
Float |
The rotation, in degrees, of the contents around the vertical axis in degrees. |
Cmn
|
Float |
The rotation, in degrees, of the contents around the Z axis in degrees. |
Cmn
|
Float |
The horizontal scale of the drawn area. |
Cmn
|
Float |
The vertical scale of the drawn area. |
Cmn
|
Float |
Sets the elevation for the shadow in pixels. |
Cmn
|
Shape |
The |
Cmn
|
open Size |
|
Cmn
|
open Color |
Sets the color of the spot shadow that is drawn when |
Cmn
|
TransformOrigin |
Offset percentage along the x and y axis for which contents are rotated and scaled. |
Cmn
|
Float |
Horizontal pixel offset of the layer relative to its left bound. |
Cmn
|
Float |
Vertical pixel offset of the layer relative to its top bound. |
Cmn
|
Inherited functions |
|||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||||||
Inherited properties |
|---|
Public properties
alpha
var alpha: Float
The alpha of the drawn area. Setting this to something other than 1 will cause the drawn contents to be translucent and setting it to 0 will cause it to be fully invisible. Default value is 1 and the range is between 0 and 1.
ambientShadowColor
open var ambientShadowColor: Color
Sets the color of the ambient shadow that is drawn when shadowElevation> 0f.
By default the shadow color is black. Generally, this color will be opaque so the intensity of the shadow is consistent between different graphics layers with different colors.
The opacity of the final ambient shadow is a function of the shadow caster height, the alpha channel of the ambientShadowColor (typically opaque), and the android.R.attr.ambientShadowAlpha theme attribute.
Note that this parameter is only supported on Android 9 (Pie) and above. On older versions, this property always returns Color.Black and setting new values is ignored.
blendMode
open var blendMode: BlendMode
BlendMode to use when drawing this layer to the destination. The default is BlendMode.SrcOver. Any value other than BlendMode.SrcOver will force this GraphicsLayerScope to use an offscreen compositing layer for rendering and is equivalent to using CompositingStrategy.Offscreen.
cameraDistance
var cameraDistance: Float
Sets the distance along the Z axis (orthogonal to the X/Y plane on which layers are drawn) from the camera to this layer. The camera's distance affects 3D transformations, for instance rotations around the X and Y axis. If the rotationX or rotationY properties are changed and this view is large (more than half the size of the screen), it is recommended to always use a camera distance that's greater than the height (X axis rotation) or the width (Y axis rotation) of this view.
The distance of the camera from the drawing plane can have an affect on the perspective distortion of the layer when it is rotated around the x or y axis. For example, a large distance will result in a large viewing angle, and there will not be much perspective distortion of the view as it rotates. A short distance may cause much more perspective distortion upon rotation, and can also result in some drawing artifacts if the rotated view ends up partially behind the camera (which is why the recommendation is to use a distance at least as far as the size of the view, if the view is to be rotated.)
The distance is expressed in pixels and must always be positive. Default value is DefaultCameraDistance
colorFilter
open var colorFilter: ColorFilter?
ColorFilter applied when drawing this layer to the destination. Setting of this to any non-null will force this GraphicsLayer to use an offscreen compositing layer for rendering and is equivalent to using CompositingStrategy.Offscreen
compositingStrategy
open var compositingStrategy: CompositingStrategy
Determines the CompositingStrategy used to render the contents of this graphicsLayer into an offscreen buffer first before rendering to the destination
outsets
open var outsets: LayerOutsets
Adds to the size of the layer increasing its bounds. This can be used to prevent content that renders outside the layer's size (such as shadows) from being clipped if the graphicsLayer is promoted to an offscreen rasterization layer. The clip and shadow will still be based on the original size of the layer.
renderEffect
open var renderEffect: RenderEffect?
Configure the RenderEffect to apply to this GraphicsLayerScope. This will apply a visual effect to the results of the GraphicsLayerScope before it is drawn. For example if BlurEffect is provided, the contents will be drawn in a separate layer, then this layer will be blurred when this GraphicsLayerScope is drawn.
Note this parameter is only supported on Android 12 and above. Attempts to use this Modifier on older Android versions will be ignored.
rotationX
var rotationX: Float
The rotation, in degrees, of the contents around the horizontal axis in degrees. Default value is 0.
rotationY
var rotationY: Float
The rotation, in degrees, of the contents around the vertical axis in degrees. Default value is 0.
rotationZ
var rotationZ: Float
The rotation, in degrees, of the contents around the Z axis in degrees. Default value is 0.
shadowElevation
var shadowElevation: Float
Sets the elevation for the shadow in pixels. With the shadowElevation> 0f and shape set, a shadow is produced. Default value is 0 and the value must not be negative.
Note that if you provide a non-zero shadowElevation and if the passed shape is concave the shadow will not be drawn on Android versions less than 10.
shape
var shape: Shape
The Shape of the layer. When shadowElevation is non-zero a shadow is produced using this shape. When clip is true contents will be clipped to this shape. When clipping, the content will be redrawn when the shape changes. Default value is RectangleShape
size
open val size: Size
Size of the graphicsLayer represented in pixels. Drawing commands can extend beyond the size specified, however, if the graphicsLayer is promoted to an offscreen rasterization layer, any content rendered outside of the specified size will be clipped.
spotShadowColor
open var spotShadowColor: Color
Sets the color of the spot shadow that is drawn when shadowElevation> 0f.
By default the shadow color is black. Generally, this color will be opaque so the intensity of the shadow is consistent between different graphics layers with different colors.
The opacity of the final spot shadow is a function of the shadow caster height, the alpha channel of the spotShadowColor (typically opaque), and the android.R.attr.spotShadowAlpha theme attribute.
Note that this parameter is only supported on Android 9 (Pie) and above. On older versions, this property always returns Color.Black and setting new values is ignored.
transformOrigin
var transformOrigin: TransformOrigin
Offset percentage along the x and y axis for which contents are rotated and scaled. The default value of 0.5f, 0.5f indicates the pivot point will be at the midpoint of the left and right as well as the top and bottom bounds of the layer. Default value is TransformOrigin.Center
translationX
var translationX: Float
Horizontal pixel offset of the layer relative to its left bound. Default value is 0.
translationY
var translationY: Float
Vertical pixel offset of the layer relative to its top bound. Default value is 0