Проблема с отображением изображений SVG с помощью катушки в Jetpack Compose: ошибка неверного ключевого слова цвета (disAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Проблема с отображением изображений SVG с помощью катушки в Jetpack Compose: ошибка неверного ключевого слова цвета (dis

Сообщение Anonymous »



Я использую Coil с Jetpack Compose для загрузки изображений SVG в свое приложение, но столкнулся с проблемой, при которой некоторые изображения загружаются правильно, а другие загружаются правильно. нет. Просматривая журналы, я вижу ошибку, связанную с недопустимым ключевым словом цвета: color(display-p3 ...). Эта проблема возникает с изображениями, которые не загружаются.
Вот соответствующий код, который я использую для загрузки изображений:
@Composable
fun coilPainter(
imageUrl: Any?,
scale: Scale = Scale.FIT,
size: Size = Size.ORIGINAL,
): AsyncImagePainter = rememberAsyncImagePainter(
model = ImageRequest.Builder(LocalContext.current)
.data(imageUrl)
.decoderFactory(SvgDecoder.Factory()) // Using SvgDecoder for SVG support
.crossfade(true)
.size(size)
.scale(scale)
.diskCachePolicy(CachePolicy.ENABLED)
.build(),
)

@Composable
fun ImageProfileLoader(
image: Any? = null,
text: String? = null,
isDefaultBankIcon: Boolean = false,
backgroundColor: Color = Color.Gray,
size: Dp = 55.dp,
fontSize: Dp = 16.dp,
) {
val painter = coilPainter(imageUrl = image)

Box(
modifier = Modifier
.size(size)
.background(backgroundColor, shape = CircleShape)
.clip(CircleShape),
contentAlignment = Alignment.Center
) {
if (painter.state is AsyncImagePainter.State.Error) {
if (text?.isEmpty() == true) {
Image(
modifier = Modifier.fillMaxSize(),
painter = painterResource(R.drawable.default_image_profile).takeIf { !isDefaultBankIcon } ?: painterResource(R.drawable.default_bank_icon),
contentDescription = "",
contentScale = ContentScale.Crop
)
} else {
TextCustom(
text = text?.first()?.uppercaseChar().toString(),
fontSize = fontSize,
color = Color171717
)
}
}

if (painter.state is AsyncImagePainter.State.Success) {
Image(
modifier = Modifier.fillMaxSize(),
painter = painter,
contentDescription = "",
contentScale = ContentScale.Crop
)
}

if (painter.state is AsyncImagePainter.State.Loading) {
Spacer(
modifier = Modifier
.size(size)
.clip(CircleShape)
.shimmerEffect()
)
}
}
}


Вот ошибка

Invalid colour keyword: color(display-p3 0.0000 0.6980 0.9137)
Invalid colour keyword: color(display-p3 0.0000 0.5922 0.8392)
Invalid colour keyword: color(display-p3 0.0000 0.5725 0.8275)
Invalid colour keyword: color(display-p3 0.0000 0.4980 0.7686)
Invalid colour keyword: color(display-p3 0.0000 0.4392 0.7294)
Invalid colour keyword: color(display-p3 0.0000 0.4078 0.7059)
Invalid colour keyword: color(display-p3 0.0000 0.4000 0.7020)
Invalid colour keyword: color(display-p3 0.0000 0.4000 0.7020)
Invalid colour keyword: color(display-p3 0.9490 0.8941 0.8039)
Invalid colour keyword: color(display-p3 0.8745 0.7294 0.5020)
Invalid colour keyword: color(display-p3 0.8275 0.6275 0.3098)
Invalid colour keyword: color(display-p3 0.8118 0.5882 0.2392)```


Подробнее здесь: https://stackoverflow.com/questions/792 ... or-keyword
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»