android - 如何将 android.graphics.Color 转换为 androidx.compose.ui.graphics.Color

标签 android android-jetpack-compose

我正在画一个 JetpackCompose Canvas

    Canvas(modifier = modifier.clipToBounds()) {
        val colorEvaluator = ArgbEvaluator()
        colorEvaluator.evaluate(t, Color.Red, Color.Blue)
        drawCircle(
            style = Stroke(8.dp.toPx()),
            color = AndroidColor.valueOf(colorEvaluator.evaluate(t, Color.Red, Color.Blue) as Int),
            center = Offset(size.minDimension/2 , size.minDimension/2),
            radius = size.minDimension * t)
        drawRect(
            color = darkColor,
            style = Stroke(16.dp.toPx()),
        )
    }
在哪里
import androidx.compose.ui.graphics.Color
import android.graphics.Color as AndroidColor
我在 color = AndroidColor.valueOf(colorEvaluator.evaluate(t, Color.Red, Color.Blue) as Int), 上收到此错误错误消息在哪里
Type mismatch.
Required:
androidx.compose.ui.graphics.Color
Found:
android.graphics.Color

最佳答案

看来我应该提供 AndroidColor.REDAndroidColor.BLUE到 ArgbEvaluator 而不是意外使用 ColorCompose在哪里 AndroidColorimport android.graphics.Color as AndroidColor

    Canvas(modifier = modifier.clipToBounds()) {
        drawCircle(
            style = Stroke(8.dp.toPx()),
            color = Color(ArgbEvaluator().evaluate(t, AndroidColor.RED, AndroidColor.BLUE) as Int),
            center = Offset(size.minDimension / 2, size.minDimension / 2),
            radius = size.minDimension * t
        )
        drawRect(
            color = darkColor,
            style = Stroke(16.dp.toPx()),
        )
    }
更新
找到了一个更好的方法,那就是使用lerpcompose按照下面的代码。使用这种方法,我们不再需要使用旧的 ArgbEvaluator .
    Canvas(modifier = modifier.clipToBounds()) {
        drawCircle(
            style = Stroke(8.dp.toPx()),
            color = lerp(Color.Red, Color.Blue, t),
            center = Offset(size.minDimension / 2, size.minDimension / 2),
            radius = size.minDimension * t
        )
        drawRect(
            color = darkColor,
            style = Stroke(16.dp.toPx()),
        )
    }

关于android - 如何将 android.graphics.Color 转换为 androidx.compose.ui.graphics.Color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64303405/

相关文章:

android - Android Studio-Gradle-无法使用哈希字符串 'Google Inc.:Glass Development Kit Preview:19'找到目标

android - MapBox queryRenderedFeatures 返回太多值

java - Activity 和 Intent 基础知识

java - 如何避免重复拍摄图像

android-jetpack-compose - 如何在 Compose NavGraph 内的两个或多个 Jetpack 可组合之间共享 View 模型?

android:minSdkVersion 和 android:icon

android - 如何断言可组合测试的下一个启动 Activity ?

android - 我不明白为什么当我将列表更改为 mutableStateOf 时 Jetpack Compose 不重新组合?

android - Android Jetpack Compose 中的 Modifier.wrapContentWidth() 与 Modifier.width(IntrinsicSize.Max)

android - 用于 Jetpack Compose 中分页项目的 LazyVerticalGrid