composecanvas自定义圆形进度条(代码片段)

安果移不动 安果移不动     2022-10-21     589

关键词:

@Composable
fun CircleRing(boxWidthDp: Int, viewModel: TaskViewModel) 
    Canvas(modifier = Modifier.size(boxWidthDp.dp), onDraw = 
        val strokWidth = 30F
        //灰色背景
        drawArc(
            Color(0, 0, 0, 15),
            startAngle = 160f,
            sweepAngle = 220f,
            useCenter = false,
            style = Stroke(strokWidth, cap = StrokeCap.Round),
        )

        drawArc(
            Color.White,
            startAngle = 160f,
            sweepAngle = viewModel.pointOfYearPercent,
            useCenter = false,
            style = Stroke(strokWidth, cap = StrokeCap.Round),
        )

    )

进度是自己穿进去的

    //学年积分
    var pointOfYear by mutableStateOf(10000)
        private set

    //学年积分进度 220f *  pointOfYear / 学年总积分
    var pointOfYearPercent by mutableStateOf(0f)
        private set

    /**
     * 更新学习进度
     */
    fun updatePointPercent() 
        pointOfYearPercent = 220f * pointOfYear / totalPointOfYear
    

效果

 整个内容数据如下

       Box(contentAlignment = Alignment.Center,
                    modifier = Modifier
                        .height(boxWidthDp.dp)
                        .padding(top = 16.dp)
                ) 
                    //圆环
                    CircleRing(boxWidthDp = boxWidthDp, taskViewModel)
                    //进度数据
                    Column(modifier = Modifier
                        .align(Alignment.Center)
                        .fillMaxWidth(),
                        horizontalAlignment = Alignment.CenterHorizontally) 
                        Text(buildAnnotatedString 
                            append(taskViewModel.pointOfYear.toString())
                            withStyle(SpanStyle(fontSize = 10.sp)) 
                                append("分")

                            
                        ,
                            fontSize = 36.sp,
                            color = Color.White)

                        Text(text = "学年积分", fontSize = 12.sp,
                            color = Color.White)

                    

                

记得在下一个组件让他往上面偏移40dp不然空隙太多咯

 

如何使用逆时针动画显示自定义圆形进度条?

】如何使用逆时针动画显示自定义圆形进度条?【英文标题】:HowtodisplaycustomcircularprogressbarwithAnti-Clockwiseanimation?【发布时间】:2014-07-0313:54:48【问题描述】:我正在使用与测验相关的应用程序。此处将显示自定义圆形进度条,... 查看详情

带有实心圆圈的自定义圆形进度条

】带有实心圆圈的自定义圆形进度条【英文标题】:CustomCircularProgressBarwithsolidcircles【发布时间】:2015-05-1505:52:21【问题描述】:我想要一个这样的圆形进度条我试过了,但它看起来不像圆形以及如何将动画与淡入淡出一起放置... 查看详情

酷炫进度条自定义seekbar(代码片段)

前些天一同学给了我一个ui图,是这样子的:需求:1、看了ui图可以知道这类似android自带的seekbar控件,2、一个水平进度条和一个圆形进度条;3、圆形进度条显示环形刻度和当前进度值;4、并且圆形进度... 查看详情

C# 自定义控件(圆形进度条) Xamarin Forms

】C#自定义控件(圆形进度条)XamarinForms【英文标题】:C#customcontrol(circleprogressbar)XamarinForms【发布时间】:2016-09-1916:15:35【问题描述】:我想知道用XamarinForms创建与此图像类似的东西的最佳方法:我从来没有创造过这样的东西。... 查看详情

自定义控件——圆形圆点进度条(仿安全卫士中的一键加速)

...觉得有点意思,可以研究一下,再说也有一段时间没写自定义控件了,正好复习复习(说实话,一段时间没写,思路有,但就是不知道从哪开始)。昨天花了一天的时间才把它搞定,先看效果图:3种显示模式:模拟进度动画效... 查看详情

首页2--动态自定义圆形进度条

A.绘制圆环,圆弧,文本//1.画圆环//原点坐标floatcircleX=width/2;floatcircleY=width/2;//半径floatradius=width/2-roundWidth/2;//设置画笔的属性paint.setColor(roundColor);paint.setStrokeWidth(roundWidth);paint.setStyle(Paint.Style. 查看详情

compose自定义条形进度条(代码片段)

前言Compose自定义View其实比View系统更方便简单,比如接下来本文要介绍的就是使用Compose实现View系统中常见的条形进度条。自定义进度条Composematerial包中提供了CircularProgressIndicator实现View系统中的圆形进度条,因为Compose没... 查看详情

compose自定义条形进度条(代码片段)

前言Compose自定义View其实比View系统更方便简单,比如接下来本文要介绍的就是使用Compose实现View系统中常见的条形进度条。自定义进度条Composematerial包中提供了CircularProgressIndicator实现View系统中的圆形进度条,因为Compose没... 查看详情

android之自定义圆形进度条

    在Android开发中,对于进度条想必大家不会陌生。例如,应用在执行一个耗时操作时,会通过展示一个进度条来显示“加载中...”的动画作为友好页面以提高用户体验。对于这样的进度条,最简单的实现方式... 查看详情

android自定义view之圆形进度条

这段时间正在学习自定义View以及属性动画的知识,然后刚好用这个来练练手,无图无真相,直接看图:简单自定义了一个比较通用的圆形进度条,像上图所示的可以定义圆的半径,进度颜色,宽度࿰... 查看详情

如何更改圆形进度条的颜色?

...leLargeInverse"风格。那么如何改变进度条的颜色呢。如何自定义样式?另外,风格的定义是什么?【问题讨论】:【参考方案1】:适 查看详情

compose自定义条形进度条(代码片段)

前言Compose自定义View其实比View系统更方便简单,比如接下来本文要介绍的就是使用Compose实现View系统中常见的条形进度条。自定义进度条Composematerial包中提供了CircularProgressIndicator实现View系统中的圆形进度条,因为Compose没... 查看详情

酷炫进度条自定义seekbar

原作者地址:http://blog.csdn.net/tl792814781/article/details/52289864前些天一同学给了我一个ui图,是这样子的:需求:1、看了ui图可以知道这类似android自带的seekbar控件,2、一个水平进度条和一个圆形进度条;3、圆... 查看详情

ios制作个圆形进度条

参考技术A1.需要做个这样的圆形进度条 自定义弹窗view就不说了,主要是这个圆形进度view,底色是灰色然后有进度灰色被黑色覆盖或者说变成黑色首先我们自定一个view,加个uilabel做进度lbael@property(nonatomic,strong)UILabel*percentLabel;/... 查看详情

如何给progressbar圆形进度条设置颜色

参考技术AAndroid中ProgressBar自定义进度条的高度、颜色、圆角很多人知道怎么改颜色,可是改高度就是胡扯了,居然想通过maxHeight去改。准确方法在这里:下面这个改成了3-5个dp高度:首先是样式文件,这里定义高度:本回答被... 查看详情

scss自定义进度条(代码片段)

查看详情

sap自定义进度条(代码片段)

1*&---------------------------------------------------------------------*2*&ReportZCHENH0283*&4*&---------------------------------------------------------------------*5*&6*&7*& 查看详情

[maui项目实战]手势控制音乐播放器:圆形进度条(代码片段)

文章目录关于图形绘制创建自定义控件使用控件创建专辑封面项目地址我们将绘制一个圆形的音乐播放控件,它包含一个圆形的进度条、专辑页面和播放按钮。关于图形绘制使用MAUI的绘制功能,需要Microsoft.Maui.Graphics库... 查看详情