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

相关推荐
李新_8 小时前
我们使用了哪些Flutter 三方库(二)
android·flutter·ios
二流小码农9 小时前
鸿蒙开发:hvigorw,编译构建,实现命令打包
android·ios·harmonyos
龙之叶10 小时前
使用NMEA Tools生成GPS轨迹图
android
雨白11 小时前
ListView 使用详解:从入门、自定义到性能优化
android
百里东风11 小时前
STM32CubeDAC及DMA配置
android·stm32·嵌入式硬件
getapi11 小时前
flutter开发安卓APP适配不同尺寸的手机屏幕
android·flutter·智能手机
bytebeats11 小时前
移动开发中WebView使用的过去现在和未来
android·webview
恋猫de小郭12 小时前
腾讯 ovCompose 开源,Kuikly 鸿蒙和 Compose DSL 开源,腾讯的“双”鸿蒙方案发布
android·前端·flutter
Chenyu_31013 小时前
05.MySQL表的约束
android·开发语言·网络·数据库·网络协议·mysql·php
我的蒲公英13 小时前
2025年了,别再用微信群发APK了:内测分发的正确打开方式
android·安全·ios