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

相关推荐
_李小白7 小时前
【Android FrameWork】延伸阅读:SurfaceFlinger线程
android
csdn12259873367 小时前
JetPack Compose 入门先搞清楚
android·compose·jetpack
liang_jy8 小时前
Android LaunchMode
android·面试
阿里云云原生9 小时前
Android App 崩溃排查实战:如何利用 RUM 完整数据与符号化技术定位问题?
android·阿里云·云原生·rum
过期动态9 小时前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
没有了遇见12 小时前
Android 音乐播放器之MotionLayout实现View流畅变换
android
TheNextByte112 小时前
在 PC 和Android之间同步音乐的 4 种方法
android
君莫啸ོ13 小时前
Android基础-Activity属性 android:configChanges
android
TimeFine13 小时前
Android AI解放生产力(七):更丰富的AI运用前瞻
android
保持低旋律节奏13 小时前
linux——进程状态
android·linux·php