`
hylxinlang
  • 浏览: 129081 次
  • 性别: 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内存溢出问题

    在Android开发中,处理`Bitmap`内存溢出问题是一个常见的挑战,尤其是在处理高分辨率或大尺寸图片时。当应用程序尝试加载或操作一张超出虚拟机内存预算的`Bitmap`时,系统会抛出`java.lang.OutOfMemoryError: bitmap...

    android bitmap内存溢出

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

    android 轻松避免内存溢出

    在Android开发中,内存管理是至关重要的,尤其是处理图片资源时,经常遇到内存溢出(Out Of Memory,简称OOM)的问题。本项目提供了一个在Android 1.6 SDK环境下编写的工具类,旨在帮助开发者有效地避免内存溢出,...

    android 图片下载 有效解决内存溢出问题

    综上所述,解决Android图片下载导致的内存溢出问题需要从多个方面进行优化,包括图片尺寸控制、缓存策略、内存管理、加载策略等。结合使用现有的图片加载库,可以显著提高应用性能和用户体验。在实际项目中,...

    bitmap内存问题

    然而,在处理大量或高分辨率图像时,不当的`Bitmap`管理常常会导致内存溢出问题,这严重影响了应用程序的性能和用户体验。接下来,我们将深入探讨如何有效地管理和优化`Bitmap`的使用,从而避免内存溢出。 #### ...

    Android 内存溢出问题

    本篇文章将深入探讨Android内存管理的两个核心概念:堆(Heap)和栈(Stack),以及如何理解和解决Android内存溢出问题。 1. 堆与栈 堆和栈是Java虚拟机(JVM)中的两种主要内存区域,它们各自具有特定的用途和...

    图片过大引起的内存溢出解决方案

    ### 图片过大引起的内存溢出解决方案 在Android开发过程中,我们经常会遇到因加载大尺寸图片而引发的`OutOfMemoryError`(内存溢出错误)。这种问题通常发生在使用`BitmapFactory`来加载图片时,尤其是在资源有限的...

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

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

    android_内存溢出处理

    在 Android 中,内存溢出通常是由于Bitmap 的大小超过了 VM 的-budget 导致的。解决这个问题需要从多方面入手,包括优化 Dalvik 虚拟机的堆内存分配、手动干涉 GC 处理、自定义堆内存大小等。 解决加载图片内存溢出...

    ANDROIDBITMAP内存限制OOM,OUTOFMEMORY.pdf

    文档标题和描述中提到的“ANDROIDBITMAP内存限制OOM,OUTOFMEMORY”指的就是在处理位图(BITMAP)时超出了虚拟机(VM)的内存预算,导致系统抛出OutOfMemoryError异常。 根据给出的内容部分,我们可以推断出以下知识...

    Android有效解决加载大图片时内存溢出的问题

    Android 中加载大图片时内存溢出的解决方案 在 Android 开发中,加载大图片时经常会出现内存溢出的问题。这是由于大图片的解码需要大量的内存空间,从而导致应用程序崩溃。因此,解决加载大图片时的内存溢出问题是...

    Android防止内存溢出浅析

    在Android开发中,防止内存溢出是一个至关重要的任务,因为Android设备的内存资源相对有限,尤其是在Dalvik虚拟机中,其最大堆大小通常只有16MB。本文将深入探讨Android平台上的内存管理机制,以及如何避免内存泄露...

    android解决加载图片内存溢出

    本篇文章将深入探讨如何在Android中有效解决图片加载导致的内存溢出问题。 首先,我们需要理解为什么图片加载会引发内存溢出。Android系统为每个应用分配了一定的内存限制,当加载大尺寸图片时,如果直接将其原样...

    android 显示大的gif图片 能解决内存溢出的问题

    综上所述,解决Android中显示大GIF图片导致的内存溢出问题,需要结合多种策略,包括但不限于选择合适的GIF解析库、使用JNI进行优化、异步加载、流式处理、内存管理和预处理等。同时,不断地测试和调整,以找到最佳的...

    Android 内存溢出的一些解决办法.doc

    本文将详细探讨几种解决Android内存溢出的方法。 首先,针对图像导致的内存溢出,一种常见的解决方案是使用`BitmapFactory.Options`类进行图片解码时的尺寸控制。例如,在创建`Bitmap`对象时,可以设置`...

    android解决内存溢出的问题..docx

    Android 解决内存溢出的问题 Android 系统中的内存溢出问题是非常常见的,特别是在加载大量图片和对象时。解决内存溢出问题可以通过多种方法,以下是总结的一些解决方案: 1. 等比例缩小图片 在加载图片时,可以...

    android双缓冲解决图片内存溢出的问题

    总之,通过双缓冲技术和合理的内存管理,我们可以有效地解决Android中因大量图片加载导致的内存溢出问题,提高应用的稳定性和性能。同时,要时刻关注应用的内存使用情况,通过内存分析工具进行监控和优化,确保应用...

    Android Bitmap 处理示例

    然而,由于Bitmap对象通常占用大量的内存,不当的处理可能导致内存溢出(Out Of Memory)问题,因此对Bitmap进行高效管理是至关重要的。本示例将详细介绍Android中Bitmap的处理,包括图片缓存策略和加载大图的技巧。...

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

    为了解决这个问题,我们需要了解 Android 加载大图片的机制,并掌握一些防止内存溢出的技巧。 首先,我们需要了解 Android 加载图片的机制。在 Android 中,加载图片可以使用多种方法,如 setImageBitmap、...

    Android的内存机制和溢出说明

    内存溢出(OutOfMemoryError)是Android开发中常见的问题,特别是在处理大尺寸的位图(Bitmap)时。由于Android设备的内存有限,长时间持有资源的引用会导致内存无法被回收,从而引发内存泄露。内存泄露不仅浪费资源...

Global site tag (gtag.js) - Google Analytics