Canvas: trying to draw too large(256032000bytes) bitmap.

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吧。

相关推荐
成都大菠萝13 小时前
Android Car CarProperty 车辆信号链路
android
敲代码的鱼14 小时前
PDF 预览与签名批注写回 支持安卓 iOS 鸿蒙 UTS插件
android·前端·ios
时光足迹15 小时前
uni-app 视频通话实战:康复师与患者视频问诊的 6 个致命 Bug 与解决方案
android·ios·uni-app
Coffeeee19 小时前
闲聊几句,Android老哥们,你们多久没做技改需求了
android·程序员·代码规范
萝卜er20 小时前
Fragment 生命周期与状态恢复-《Android深水区(四)》
android
萝卜er20 小时前
Intent 显式、隐式与 PendingIntent-《Android深水区(五)》
android
Kapaseker1 天前
一文吃透 Kotlin 集合操作符
android·kotlin
三少爷的鞋1 天前
Main-safe:现代Android 架构真正的分水岭
android
沐怡旸1 天前
深入解析 Android Performance Analyzer (APA) 底层架构与技术原理
android
李斯维2 天前
从历史的角度看 Android 软件架构
android·架构·android jetpack