Android图片的调试
发布日期:2021-06-30 21:21:44
浏览次数:3
分类:技术文章
本文共 918 字,大约阅读时间需要 3 分钟。
应用最大的内存限制
Caused by: java.lang.OutOfMemoryError: bitmapsize exceeds VM budget 加载大图片两次 报的异常
VM heap: 指定每个应用最大的内存堆大小 超过了该设置值就会报OOM
1. Android是一个基于虚拟机的系统,虚拟机会给每个程序分配一个最大执行大小,通常系统默认为128M(官方默认),
但是小内存手机往往设置为32M或者48M才是最好的。因为如果应用内存占用过大,可能会导致应用程序也会表现出卡顿或者应用崩溃现象。
2. Android的 java程序为什么容易出现OOM
这个是因为Android系统对dalvik的vmheapsize作了硬性限制,当java进程申请的java空间超过阈值VMheap时,就会抛出OOM异常(这个阈值可以是48M、24M、16M等,视机型而定)
加载大图片分析:
图片的大小 > 屏幕的大小
图片的宽度/屏幕的宽度 =大于1
图片的高度/屏幕的高度 =大于1
成比例缩放的时候 只需要一个比例值 应该取最大比例值 兼容
创建图片拷贝的步骤
//1.加载原来的图片Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.boy);//2.购买一张画纸Bitmap bitmap=Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), Config.RGB_565);//3.创建画板 将画纸粘贴上来Canvas canvas=new Canvas(bitmap);//4.购买画笔Paint paint=new Paint();//paint.setAntiAlias(aa) 消除锯齿//5.开始作画Matrix matrix=new Matrix();matrix.setScale(1.0f, 1.0f);canvas.drawBitmap(bmp, matrix, paint);//6. 将新的图片加载到mIvmIv.setImageBitmap(bitmap);
转载地址:https://liwangjiang.blog.csdn.net/article/details/79765130 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月23日 10时56分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
golang中的time包
2019-04-30
golang fmt包中的占位符
2019-04-30
Docker下使用Redis
2019-04-30
Redis的主从和集群设置
2019-04-30
对Redis Cluster的理解
2019-04-30
清华师哥丢了个在Github下载量50万+的项目给我,让(附源码下载地址)
2019-04-30
The MASM32 SDK version 10 发布了!
2019-04-30
发布软件:TreeInfo(分层信息管理器)
2019-04-30
c++二分图的最大匹配
2019-04-30
c++点的距离
2019-04-30
c++实现彩色炫酷(?)画面
2019-04-30
c++马拦过河卒
2019-04-30
2019NOIP D4题 加工领奖
2019-04-30
1997年世界黑客大赛获奖作品
2019-04-30
论DEV-C++怎样才能做窗口
2019-04-30
Failed to connect to github.com port 443: Operation timed out和弹出无法打开"GoogleSoftwareUpdate.bundle"
2019-04-30
2021.5.19 JS高级第二天
2019-04-30
2021.5.20 JS高级第三天
2019-04-30
2021.5.21 Jquery
2019-04-30
2021.5.22 Jquery
2019-04-30