android - 在 Jetpack compose 中绘制动画圆

标签 android kotlin android-jetpack-compose

我正在尝试使用 drawCircle 为圆形绘图设置动画。在 Canvas如下:

 drawCircle(
     color = Color.Black,
     radius = 200f * animatableCircle.value,
     center = Offset(size.width / 4, size.height / 4),
     style = Stroke(2f)
)

enter image description here
看起来不像是在画圆,而是圆从中心开始按比例缩放。是否可以实现类似于CircularProgressIndicator的沿半径绘制圆的效果?如图所示?
enter image description here

最佳答案

只是为了完成 @Varsha Kulkarni 发布的代码: (+1)

    val radius = 200f
    val animateFloat = remember { Animatable(0f) }
    LaunchedEffect(animateFloat) {
        animateFloat.animateTo(
            targetValue = 1f,
            animationSpec = tween(durationMillis = 3000, easing = LinearEasing))
    }

   Canvas(modifier = Modifier.fillMaxSize()){
       drawArc(
           color = Color.Black,
           startAngle = 0f,
           sweepAngle = 360f * animateFloat.value,
           useCenter = false,
           topLeft = Offset(size.width / 4, size.height / 4),
           size = Size(radius * 2 ,
               radius * 2),
           style = Stroke(2.0f))
   }
enter image description here

关于android - 在 Jetpack compose 中绘制动画圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67080502/

相关文章:

android - 为什么我们使用 val 而不是 var 来记住 Jetpack Compose 中的可变状态?

java - 操作 Java/Android color int 的 alpha 字节

android - TelephonyManager 类型的相对速度?

android - 为什么它说 "Calls to launch should happen inside a LaunchedEffect and not composition"?

android - BottomNavigationView 仅隐藏在滚动条上的一个 fragment

java - 从 kotlin Activity 调用 java 类

android - LazyColumn 项目,隐式接收器无法在此上下文中调用单元

android - 在 Android 中使用 Volley for GIthub 进行基本身份验证。获取错误代码 422

android - 如何在不遮挡背景窗口的情况下创建 ProgressDialog

kotlin - 如何检查字符串是否是android中的有效电子邮件?