//解决内存溢出情况 private void SetImageSize(String path,ImageView imageView){ BitmapFactory.Options opt = new BitmapFactory.Options(); //这个isjustdecodebounds很重要 opt.inJustDecodeBounds = true; Bitmap bm = BitmapFactory.decodeFile(path, opt); //获取到这个图片的原始宽度和高度 int picWidth = opt.outWidth; int picHeight = opt.outHeight; //获取屏的宽度和高度 WindowManager windowManager = ((Activity) context).getWindowManager(); Display display = windowManager.getDefaultDisplay(); int screenWidth = display.getWidth(); int screenHeight = display.getHeight(); //isSampleSize是表示对图片的缩放程度,比如值为2图片的宽度和高度都变为以前的1/2 opt.inSampleSize = 1; //根据屏的大小和图片大小计算出缩放比例 if(picWidth > picHeight){ if(picWidth > screenWidth) opt.inSampleSize = picWidth/screenWidth; } else{ if(picHeight > screenHeight) opt.inSampleSize = picHeight/screenHeight; } //这次再真正地生成一个有像素的,经过缩放了的bitmap opt.inJustDecodeBounds = false; bm = BitmapFactory.decodeFile(path, opt); //用imageview显示出bitmap imageView.setImageBitmap(bm); }
移动开发网:www.chengdu135.com
相关推荐
处理bitmap内存溢出问题
Bitmap bitmap = BitmapFactory.decodeFile(imageFile, opts); 设置inJustDecodeBounds为true后,decodeFile并不分配空间,但可计算出原始图片的长度和宽度,即opts.width和opts.height。有了这两个参数,再通过...
android bitmap outofMemory 用来解决android中常见的bitmap outOfMemory
Android中bitmap引起内存溢出的解决方案的对比分析.pdf
可以很好的出来android开发过程中,由bitmap导致的内存溢出的问题。
关于android内存机制的介绍,以及bitmap的内存泄露等问题的处理方式
android加载大图片的时候防止内存溢出的分析
在Android开发过程中,Bitmap往往会给开发者带来一些困扰,因为对Bitmap操作不慎,就容易造成OOM(Java.lang.OutofMemoryError – 内存溢出),本篇博客,我们将一起探讨Bitmap的性能优化。 为什么Bitmap会导致OOM? 1...
//将图片设为原来宽高的1/2,防止内存溢出 Bitmap bm = BitmapFactory.decodeFile("",option);//文件流 URL url = new URL(""); InputStream is = url.openStream(); Bitmap bm = BitmapFactory.decodeStream(is); ...
2. 由于Android对图片使用内存有限制,若是加载几兆的大图片便内存溢出。Bitmap会将图片的所有像素(即长x宽)加载到内存中,如果图片分辨率过大,会直接导致内存OOM,只有在BitmapFactory加载图片时使用...
双缓存机制下,Android应用会对大内存的图片做二级缓存,对于溢出缓存的bitmap实行recycle,但是有些bitmap正在显示,会造成概率性的花屏等, 该方案提供了一套完整的防止recycle正在显示的bitmap的方案
本文实例总结了Android编程之内存溢出解决方案(OOM)。分享给大家供大家参考,具体如下: 在最近做的工程中发现加载的图片太多或图片过大时经常出现OOM问题,找网上资料也提供了很多方法,但自己感觉有点乱,特此,...
首先解析一下基本的知识:位图模式,bitmap颜色位数是1位灰度模式,bitmap颜色位数是8位,和256色一样 首先解析一下基本的知识: 位图模式,bitmap颜色位数是1位 灰度模式,bitmap颜色位数是8位,和256色一样 ...
实现Android相机拍照、相册选取后直接显示以及截图后显示,解决因Bitmap导致的内存溢出问题。
在程序运行中会创建对象,如果未合理管理内存,比如不及时回收无效空间就会造成内存泄露,严重的话可能导致使用内存超过系统分配内存,即内存溢出OOM,导致程序卡顿甚至直接退出。 内存泄露(Memory Le
Android拍照、相册选取、截图综合。 实现Android相机拍照、相册选取后直接显示以及截图后显示,解决因Bitmap导致的内存溢出问题。
在应用中,如果大量的使用bitmap就很可能导致内存溢出的问题。比如我在曾经的一个项目中遇到的问题:要使用Gallery来显示多张不同的图片,在给Gallery的每个Item设置图片的时候,想到Bitmap如果不手动的recycle,系统...
摘要:Java源码,Android源码,Android截图 Android相机拍照、相册选取后直接显示以及截图后显示,解决因Bitmap导致的内存溢出问题,源码实现过程部分注释讲解: 将保存在本地的图片取出并缩小后显示在界面上、由于...
Android 图片自动加载管理类 解决内存溢出 控件重用图片错位 自动加载网络图片 文件缓存、自动释放文件缓存
首先,OOM就是内存溢出,即Out Of Memory。也就是说内存占有量超过了VM所分配的最大。 怎么解决OOM,通常OOM都发生在需要用到大量内存的情况下(创建或解析Bitmap,分配特大的数组等),在这样的一种情况下,就可能...