1、错误展示
测试了一下一张图片的显示,发现二个手机上测试的结果不一样,配制好一些的手机,直接就通过,但是屏小一些的测试手机上,直接报下面的错误。
这个意思是图片太大了,直接就崩了。

2、代码编写
logoPainter?.let { painter ->
Image(
painter = painterResource(R.drawable.bg),
contentDescription = stringResource(R.string.app_name),
contentScale = ContentScale.FillHeight,
modifier = Modifier
.fillMaxWidth()
.align(Alignment.TopCenter)
.height(200.dp)
)
} ?: run {
...
}
上面就是加载一张图片,别的并没有任何功能。
3、分析原因
然后bg是一张图片,大概3000*2000多一张的图片。
导致上面的问题,应该图片太大了(分辨率),不是图片太大了(占用空间)。
4、解决方法
logoPainter?.let { painter ->
Image(
painter = painterResource(R.mipmap.bg),
contentDescription = stringResource(R.string.app_name),
contentScale = ContentScale.FillHeight,
modifier = Modifier
.fillMaxWidth()
.align(Alignment.TopCenter)
.height(200.dp)
)
} ?: run {
...
}

说明:将一开始的代码R.drawable改为R.mipmap,然后分别修改对应的bg.jpg的分辨率大小,这样再次加载,就会发现已经成功了,当然这里的大小也不能太大,一般保持在几K到几百K吧。