Android 合成 - 具有 3 种类型的图像:纯色、线性渐变、url

Android Compose - Image with 3 types: color solid, linear gradient, url

我只想使用具有 3 种 src 类型的图像:纯色、线性渐变或图像 URL

就是这样

when (type) {
    Type.SOLID -> Image(...)
    Type.GRADIENT -> Image(...)
    Type.URL -> Image(...) // I can do this case, I use Coil for load image URL
}

怎么做?谢谢

您可以使用类似的东西:

when (type) {
    Type.SOLID ->
       Box(  modifier = Modifier.size(sizeImage).background(Color.Blue))
    Type.GRADIENT -> 
       Box(  modifier = Modifier.size(sizeImage).background(gradient))
    Type.URL -> 
       Image(
        painter = rememberImagePainter("...."),
        modifier = Modifier
            .size(sizeImage),
        contentDescription = "",
        contentScale = ContentScale.Crop
    )
}

注意:rememberImagePainter 需要 coil-compose 实施。

与:

val sizeImage = 200.dp

val gradient = Brush.verticalGradient(
    colors = listOf(Color.Yellow, Color.Red, Color.Black),
    startY = sizeImage.value.toFloat().toFloat()/3,  // 1/3
    endY = sizeImage.value.toFloat()
)