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()
)
我只想使用具有 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()
)