`
hylxinlang
  • 浏览: 124379 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Android Bitmap 内存溢出解决办法

阅读更多
//解决内存溢出情况
	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

0
1
分享到:
评论

相关推荐

    处理bitmap内存溢出问题

    处理bitmap内存溢出问题

    android bitmap内存溢出

    Bitmap bitmap = BitmapFactory.decodeFile(imageFile, opts); 设置inJustDecodeBounds为true后,decodeFile并不分配空间,但可计算出原始图片的长度和宽度,即opts.width和opts.height。有了这两个参数,再通过...

    android bitmap outOfMemory解决方法

    android bitmap outofMemory 用来解决android中常见的bitmap outOfMemory

    Android中bitmap引起内存溢出的解决方案的对比分析.pdf

    Android中bitmap引起内存溢出的解决方案的对比分析.pdf

    bitmap内存问题

    可以很好的出来android开发过程中,由bitmap导致的内存溢出的问题。

    Android的内存机制和溢出说明

    关于android内存机制的介绍,以及bitmap的内存泄露等问题的处理方式

    加载大图片的时候如何防止内存溢出

    android加载大图片的时候防止内存溢出的分析

    Android性能优化之Bitmap图片优化详解

    在Android开发过程中,Bitmap往往会给开发者带来一些困扰,因为对Bitmap操作不慎,就容易造成OOM(Java.lang.OutofMemoryError – 内存溢出),本篇博客,我们将一起探讨Bitmap的性能优化。 为什么Bitmap会导致OOM? 1...

    android Bitmap用法总结

    //将图片设为原来宽高的1/2,防止内存溢出 Bitmap bm = BitmapFactory.decodeFile("",option);//文件流 URL url = new URL(""); InputStream is = url.openStream(); Bitmap bm = BitmapFactory.decodeStream(is); ...

    Android加载图片内存溢出问题解决方法

    2. 由于Android对图片使用内存有限制,若是加载几兆的大图片便内存溢出。Bitmap会将图片的所有像素(即长x宽)加载到内存中,如果图片分辨率过大,会直接导致内存OOM,只有在BitmapFactory加载图片时使用...

    Android 双缓存机制下 Bitmap Recycle方案

    双缓存机制下,Android应用会对大内存的图片做二级缓存,对于溢出缓存的bitmap实行recycle,但是有些bitmap正在显示,会造成概率性的花屏等, 该方案提供了一套完整的防止recycle正在显示的bitmap的方案

    Android编程之内存溢出解决方案(OOM)实例总结

    本文实例总结了Android编程之内存溢出解决方案(OOM)。分享给大家供大家参考,具体如下: 在最近做的工程中发现加载的图片太多或图片过大时经常出现OOM问题,找网上资料也提供了很多方法,但自己感觉有点乱,特此,...

    Android加载大图片内存溢出

    首先解析一下基本的知识:位图模式,bitmap颜色位数是1位灰度模式,bitmap颜色位数是8位,和256色一样  首先解析一下基本的知识:  位图模式,bitmap颜色位数是1位  灰度模式,bitmap颜色位数是8位,和256色一样 ...

    Android拍照、相册选取、截图综合Demo

    实现Android相机拍照、相册选取后直接显示以及截图后显示,解决因Bitmap导致的内存溢出问题。

    浅谈Android应用的内存优化及Handler的内存泄漏问题

    在程序运行中会创建对象,如果未合理管理内存,比如不及时回收无效空间就会造成内存泄露,严重的话可能导致使用内存超过系统分配内存,即内存溢出OOM,导致程序卡顿甚至直接退出。 内存泄露(Memory Le

    Android拍照、相册选取、截图综合

    Android拍照、相册选取、截图综合。 实现Android相机拍照、相册选取后直接显示以及截图后显示,解决因Bitmap导致的内存溢出问题。

    大图片所引起的内存问题

    在应用中,如果大量的使用bitmap就很可能导致内存溢出的问题。比如我在曾经的一个项目中遇到的问题:要使用Gallery来显示多张不同的图片,在给Gallery的每个Item设置图片的时候,想到Bitmap如果不手动的recycle,系统...

    Android相机拍照、截图功能的实例演示

    摘要:Java源码,Android源码,Android截图 Android相机拍照、相册选取后直接显示以及截图后显示,解决因Bitmap导致的内存溢出问题,源码实现过程部分注释讲解:  将保存在本地的图片取出并缩小后显示在界面上、由于...

    BitmapManage

    Android 图片自动加载管理类 解决内存溢出 控件重用图片错位 自动加载网络图片 文件缓存、自动释放文件缓存

    解决Android平台中应用程序OOM异常的方法

    首先,OOM就是内存溢出,即Out Of Memory。也就是说内存占有量超过了VM所分配的最大。 怎么解决OOM,通常OOM都发生在需要用到大量内存的情况下(创建或解析Bitmap,分配特大的数组等),在这样的一种情况下,就可能...

Global site tag (gtag.js) - Google Analytics