Compose_20--画布(Canvas)

如果我们想自定义图形的话,就要使用Canvas,因为Canvas是自定义图形的核心可组合项。在Canvas中,可用空间大小可用通过modifier来设置,例如设置Canvas的可用空间大小为填充其父元素:

Canvas(modifier = Modifier.fillMaxSize()) {
}

Canvas自动提供了一个维护自身状态且限定了作用域的绘图环境--DrawScope,其提供了一些有用的字段:

  • drawContext:包含创建图形环境所需依赖项的当前DrawContext;
  • center:图形环境当前边界的中心;
  • size:当前维度和最大维度的Size对象;
  • layoutDirection:绘制的布局的方向

这方便了我们为一组图形元素设置参数,我们用得到最多的可能就是size,因为其它对象基本都在内部引用比较多。

下面画一些基本的图形:

1.画一条线:

/**
 * 画线
 */
@Composable
fun compose_drawLine() {
    Canvas(modifier = Modifier.fillMaxSize()) {
        val canvasWidth = size.width // 画布的宽
        val canvasHeight = size.height  // 画布的高
        drawLine(
            start = Offset(x = canvasWidth, y = 0f), // 起点
            end = Offset(x = 0f, y = canvasHeight), // 终点
            color = Color.Red  // 颜色
        )
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值