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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LayoutInflater的使用
下一篇:计算机图形表示的原理

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月23日 10时56分18秒