8

我需要使用 Coil 通过 url 在我的应用程序中显示图像,但此图像不会加载。我遵循官方文档https://coil-kt.github.io/coil/compose/

个人资料卡

implementation "io.coil-kt:coil-compose:1.3.1"
@Composable
fun ProfilePicture(profilePicture: String, online: Boolean) {
    Card(
        shape = CircleShape,
        border = BorderStroke(
            width = 2.dp,
            color = if (online) MaterialTheme.colors.lightGreen else Color.Red
        ),
        modifier = Modifier.padding(16.dp),
        elevation = 4.dp
    ) {
        Image(
            painter = rememberImagePainter(
                data = profilePicture,
                builder = {
                    transformations(CircleCropTransformation())
                }
            ),
            modifier = Modifier.size(72.dp),
            contentDescription = "Profile picture"
        )
    }
}

更新

UserModel 的一个例子

UserModel(
    name = "John Doe",
    profilePicture = "https://randomuser.me/api/portraits/men/32.jpg",
    online = true
)
4

3 回答 3

5

Coil 不会在模拟器上加载图像,因为您需要启用明文流量,将此行添加到AndroidManifest.xml.

android:usesCleartextTraffic="true"

然后从您的模拟器中卸载该应用程序并再次安装它,它将工作。

于 2021-09-02T18:02:14.280 回答
1

我有同样的问题,只发生在模拟器上。关闭移动数据,同时启用 Wi-Fi 为我解决了这个问题。

于 2021-09-08T13:51:43.933 回答
0

在模拟器上检查您的日期/时间。

问题可能是由于 Android 模拟器似乎没有与网络同步日期和时间。这使得模拟器证书显示为过期并导致服务器拒绝连接。

手动将模拟器时间/日期设置为当前时间/日期后,下载图像开始为我工作。

冷启动模拟器也可能会有所帮助(看起来像从保存的图像启动出于某种原因将日期/时间设置为图像保存时的那个)。

于 2022-02-06T17:28:51.973 回答