【发布时间】:2021-05-08 04:26:05
【问题描述】:
我使用 Glide 和 Coil 通过 Jetpack Compose 通过 URL 加载图像。
但是,图像只有黑色。我该如何解决这个问题?
我的Compose 和Coil 版本是最新版本。
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.value或profileImageUrl是否为空? -
@Marat 我检查了它的值是
https://k.kakaocdn.net/dn/IOMxT/btqYvUIVMAL/VZCdMjf01kxnkFFZFNDJ81/img_640x640.jpg。 (非空) -
@MartinMarconcini 图片不是全黑的,但是图片的形状出现了,而且这些图片都显示为黑色。(如:
app:tint="#000")我会参考你的链接随附的。谢谢。
标签: android kotlin android-jetpack-compose