【问题标题】:Jetpack Compose Images loaded from URL are always black从 URL 加载的 Jetpack Compose 图像始终为黑色
【发布时间】:2021-05-08 04:26:05
【问题描述】:

我使用 GlideCoil 通过 Jetpack Compose 通过 URL 加载图像。
但是,图像只有黑色。我该如何解决这个问题?

我的ComposeCoil 版本是最新版本。

kakaoProfile.value!!.profileImageUrl!! 的值:https://k.kakaocdn.net/dn/IOMxT/btqYvUIVMAL/VZCdMjf01kxnkFFZFNDJ81/img_640x640.jpg

这是我的代码:

Column(
    modifier = Modifier.fillMaxSize(),
    horizontalAlignment = Alignment.End,
    verticalArrangement = Arrangement.Center
{
    if (kakaoProfile.value == null) {
        Icon(
            imageVector = Icons.Outlined.AccountCircle,
            contentDescription = null,
            modifier = Modifier.size(100.dp),
            tint = colors.primary
        ) 
    } else {
        Icon(
            painter = rememberCoilPainter(kakaoProfile.value!!.profileImageUrl!!),
            contentDescription = null,
            modifier = Modifier.size(100.dp)
        )
    }
}
.
.
.
Button(
    modifier = Modifier.padding(start = 8.dp),
    shape = RoundedCornerShape(15.dp),
    colors = ButtonDefaults.buttonColors(backgroundColor = Color(0xFF393939)),
    onClick = {
        if (kakaoProfile.value == null) {
            UserApiClient.instance.loginWithKakaoTalk(context) { token, error ->
                if (error != null) {
                    Log.e("TAG", "Login Fail", error)
                } else if (token != null) {
                    UserApiClient.instance.me { user, _ ->
                        kakaoProfile.value = user?.kakaoAccount?.profile
                    }
                }
            }
        } else {
            UserApiClient.instance.logout {
                kakaoProfile.value = null
            }
        }
    }
) {
    Text(
        text = if (kakaoProfile.value == null) "login" else "logout",
        fontSize = 18.sp,
        color = Color.White
    )
}

结果屏幕:(橙色圆圈为Icon
problem screen

【问题讨论】:

  • 什么是 kakaoProfile?
  • @GabrieleMariotti 我使用了社交信使登录 API。 kakaoProfile变量为社交信使的登录结果值,输入对应账号的profile信息对象。 kakaoProfile.value!!.profileImageUrl!! 的值是指向已登录帐户的个人资料图片的链接(如:k.kakaocdn.net/dn/IOMxT/btqYvUIVMAL/VZCdMjf01kxnkFFZFNDJ81/…)。声明:val kakaoProfile = remember { mutableStateOf<Profile?>(null) }
  • 您检查kakaoProfile.valueprofileImageUrl 是否为空?
  • @Marat 我检查了它的值是https://k.kakaocdn.net/dn/IOMxT/btqYvUIVMAL/VZCdMjf01kxnkFFZFNDJ81/img_640x640.jpg。 (非空)
  • @MartinMarconcini 图片不是全黑的,但是图片的形状出现了,而且这些图片都显示为黑色。(如:app:tint="#000")我会参考你的链接随附的。谢谢。

标签: android kotlin android-jetpack-compose


【解决方案1】:

摆脱图标上的色调。

Icon(
  painter = rememberImagePainter(imageURL),
  contentDescription = null,
  modifier = Modifier.size(42.dp),
  tint = Color.Unspecified
)

【讨论】:

  • 应该标记为写答案!
【解决方案2】:

我遇到了同样的问题,我需要将图标更改为图像 - 似乎图标在撰写中是黑白(形状)。

【讨论】:

    猜你喜欢
    • 2021-07-01
    • 1970-01-01
    • 2019-11-08
    • 2020-02-08
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2023-02-11
    • 1970-01-01
    相关资源
    最近更新 更多