Для рисования окруженостей применяется функция drawCircle():
fun drawCircle( color: Color, radius: Float = size.minDimension / 2.0f, center: Offset = this.center, alpha: @FloatRange(from = 0.0, to = 1.0) Float = 1.0f, style: DrawStyle = Fill, colorFilter: ColorFilter? = null, blendMode: BlendMode = DefaultBlendMode ): Unit
Эта функция принимает следующие параметры:
color
: цвет окружности
center
: точка верхнего левого углацентра окружености (значение типа Offset)
radius
: радиус окружности
alpha
: прозрачность, применяемая к цвету окружности в виде значения из диапазона от 0.0f до 1.0f
style
: стиль заполнения окружности (значение DrawStyle)
colorFilter
: цветовой фильтр ColorFilter, который применяется к цвету окружности
blendMode
: алгоритм смешивания, применяемый к цвету
Пример рисования окружности:
package com.example.helloapp import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.Canvas import androidx.compose.foundation.background import androidx.compose.foundation.layout.size import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Canvas(Modifier.size(300.dp).background(Color.LightGray)) { drawCircle( color = Color.DarkGray, center = center, radius = 120.dp.toPx() ) } } } }
Для отрисовки овалов применяется функция drawOval()
fun drawOval( color: Color, topLeft: Offset = Offset.Zero, size: Size = this.size.offsetSize(topLeft), alpha: @FloatRange(from = 0.0, to = 1.0) Float = 1.0f, style: DrawStyle = Fill, colorFilter: ColorFilter? = null, blendMode: BlendMode = DefaultBlendMode ): Unit
Эта функция принимает следующие параметры:
color
: цвет овала
topLeft
: точка верхнего левого угла (значение типа Offset)
size
: размер овала
alpha
: прозрачность, применяемая к цвету овала в виде значения из диапазона от 0.0f до 1.0f
style
: стиль заполнения овала (значение DrawStyle)
colorFilter
: цветовой фильтр ColorFilter, который применяется к цвету овала
blendMode
: алгоритм смешивания, применяемый к цвету
По сути эта функция описывает прямоугольник, в который вписывается овал. Пример отрисовки овала:
package com.example.helloapp import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.Canvas import androidx.compose.foundation.background import androidx.compose.foundation.layout.size import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Size class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Canvas(Modifier.size(300.dp).background(Color.LightGray)) { drawOval( color = Color.DarkGray, topLeft = Offset(x = 20.dp.toPx(), y = 60.dp.toPx()), size = Size( width = size.width - 50.dp.toPx(), height = size.height/2 ), ) } } } }