如何将 androidx.compose.ui.graphics.Color 转换为 android.graphics.Color(整数)
How to Convert androidx.compose.ui.graphics.Color to android.graphics.Color (int)
如何将 Compose Color 转换为 Android Color Int?
我目前正在使用这段代码,它似乎可以工作,但我似乎无法找到一个函数来获取颜色的 Int 值
Color.rgb(color.red.toInt(), color.green.toInt(), color.blue.toInt())
其中 Color.rgb
是一个函数 android.graphics.Color
returns 一个 Integer 颜色和颜色变量只是一个 Compose Color !
因为浮点数要求更高API
已链接:
可以使用toArgb()
方法
Converts this color to an ARGB color int. A color int is always in the
sRGB color space
类似于:
//Compose Color androidx.compose.ui.graphics
val Teal200 = Color(0xFFBB86FC)
//android.graphics.Color
val color = android.graphics.Color.argb(
Teal200.toArgb().alpha,
Teal200.toArgb().red,
Teal200.toArgb().green,
Teal200.toArgb().blue
)
您还可以使用:
val color = Teal200.toAGColor()
对我有用的是:
color.hashCode()
这是对@gabriele 的回答的转述,其中包含一些 Kotlin 糖分:
//Compose Color androidx.compose.ui.graphics
val Teal200 = Color(0xFFBB86FC)
fun Color.toAGColor() = toArgb().run { android.graphics.Color.argb(alpha, red, green, blue) }
//android.graphics.Color
val color = Teal200.toAGColor()
Android Compose Color
class 现在具有函数 toArgb(),可转换为 Color Int。
函数文档说:
Converts this color to an ARGB color int. A color int is always in the sRGB color space. This implies a color space conversion is applied if needed.
-> 不再需要自定义转换函数。
为我工作转换为 Argb,然后转换为字符串:
fun Int.hexToString() = String.format("#%06X", 0xFFFFFF and this)
fun getStringColor(color: Color): String {
return color.toArgb().hexToString()
}
fun someOperation() {
val color = Color.White //compose color
val colorAsString = getStringColor(color)
print(colorAsString)
}
// Result will be: "#FFFFFF"
如何将 Compose Color 转换为 Android Color Int?
我目前正在使用这段代码,它似乎可以工作,但我似乎无法找到一个函数来获取颜色的 Int 值
Color.rgb(color.red.toInt(), color.green.toInt(), color.blue.toInt())
其中 Color.rgb
是一个函数 android.graphics.Color
returns 一个 Integer 颜色和颜色变量只是一个 Compose Color !
因为浮点数要求更高API
已链接:
可以使用toArgb()
方法
Converts this color to an ARGB color int. A color int is always in the sRGB color space
类似于:
//Compose Color androidx.compose.ui.graphics
val Teal200 = Color(0xFFBB86FC)
//android.graphics.Color
val color = android.graphics.Color.argb(
Teal200.toArgb().alpha,
Teal200.toArgb().red,
Teal200.toArgb().green,
Teal200.toArgb().blue
)
您还可以使用:
val color = Teal200.toAGColor()
对我有用的是:
color.hashCode()
这是对@gabriele 的回答的转述,其中包含一些 Kotlin 糖分:
//Compose Color androidx.compose.ui.graphics
val Teal200 = Color(0xFFBB86FC)
fun Color.toAGColor() = toArgb().run { android.graphics.Color.argb(alpha, red, green, blue) }
//android.graphics.Color
val color = Teal200.toAGColor()
Android Compose Color
class 现在具有函数 toArgb(),可转换为 Color Int。
函数文档说:
Converts this color to an ARGB color int. A color int is always in the sRGB color space. This implies a color space conversion is applied if needed.
-> 不再需要自定义转换函数。
为我工作转换为 Argb,然后转换为字符串:
fun Int.hexToString() = String.format("#%06X", 0xFFFFFF and this)
fun getStringColor(color: Color): String {
return color.toArgb().hexToString()
}
fun someOperation() {
val color = Color.White //compose color
val colorAsString = getStringColor(color)
print(colorAsString)
}
// Result will be: "#FFFFFF"