`
yanghaoli
  • 浏览: 288533 次
社区版块
存档分类
最新评论

高效使用位图

 
阅读更多

如何有效的使用位图,避免OOM,Android Training说了很明白了,主要有四点:

1、有效的利用大图片

根据实际应用情况,加载位图,不要浪费。比如,在一个100*100的ImageView,完全加载一个1000*1000的位图,这就真的很浪费了。

应该根据实际大小需求,计算出inSampleSize再去Decode位图,这样很省内存。

2、在非UI线程处理位图

这个大家都懂,不多说。

3、使用缓存

利用LruCache和DiskLruCache,两者结合使用,就像多级缓存一样。在实际使用中,根据需要计算出缓存空间大小,同事避免类似横竖屏切换,界面重新初始化,导致缓存失效。

4、有效管理位图内存

这个需要对不同的系统版本采用不同的处理方法。2.3.3以下系统,bitmap的数据和对象是储存在两个不同的地方,我们需要自己调用recycle进行回收。3.0以上可以reused位图内存。

 

画了一个图,希望读者更好理解。

 

 

说什么都是虚的,注意实际开发中灵活运用吧。

最近Google I/O 2013 很多干货,整理了一个播放列表:http://t.cn/zTsgFb3 youtube上的,需要穿越,大家懂的。

欢迎大家交流,转载请注明出处!

参考:http://developer.android.com/training/displaying-bitmaps/index.html

------END-----

 

 

 

1
2
分享到:
评论

相关推荐

    使用位图创建工具栏

    下面我们将详细讨论如何使用位图创建工具栏以及相关知识点。 首先,我们需要理解位图(Bitmap)的概念。位图是一种图像文件格式,它以像素阵列的形式存储图像,每个像素可以有不同的颜色。在创建工具栏时,我们可以...

    易语言位图句柄取位图模块

    在IT行业中,位图处理是图像编程中的一个重要环节,尤其在图形用户界面(GUI)的开发中。"易语言位图句柄取位图模块"是一...通过理解和运用这些技术,开发者可以创建出具有丰富图形界面和高效位图处理能力的应用程序。

    昆仑组态位图.zip

    因此,在选择和使用位图时,需兼顾美观性和实用性,确保系统的高效运行。 总的来说,“昆仑组态位图.zip”压缩包为昆仑通态触摸屏的界面设计提供了丰富的素材库,不仅丰富了用户界面的视觉体验,也为工程师提供了极...

    对比两个位图之间存在的差异

    在C#中,我们可以使用System.Drawing命名空间中的Bitmap类来操作位图对象。 1. **加载位图**: 首先,我们需要使用Bitmap类的构造函数从文件路径加载位图。例如,`Bitmap bitmap1 = new Bitmap("path_to_image1.png...

    位图的读取、显示和图像处理

    在编程中,我们可以使用库函数(如C++的OpenCV库或Python的PIL库)来读取位图文件,解析这些头部信息,并将像素数据存储到内存中的二维数组。 2. 位图显示:读取位图后,我们可以通过绘制函数将其显示在屏幕上。...

    ORACLE四招提高位图索引

    总的来说,位图索引是Oracle数据库的一个强大工具,尤其在特定场景下,它能提供高效的查询性能。通过正确地选择使用场景,适当地调整数据类型,以及充分了解其限制,我们可以最大化位图索引的优势,从而提高整体的...

    打开位图并显示

    例如,`LoadImage`函数可以用来从文件加载一个位图资源,然后在设备上下文(DC)中选择这个位图,最后使用`BitBlt`进行位图的复制和显示。 3. **视图类**:视图类(通常是CView的派生类)是实际显示位图的地方。你...

    打开位图并显示位图信息

    MFC是微软提供的一组C++类库,用于构建Windows应用程序,它简化了Windows API的使用,使得开发者能够更加高效地编写图形用户界面(GUI)程序。 首先,我们要理解位图(Bitmap)是一种常见的数字图像格式,它存储了...

    BMP位图查找(高效)模块

    在这个“BMP位图查找(高效)模块”中,易语言被用来实现图像处理算法,提供给开发者易于理解和使用的接口。通过使用这个模块,开发者无需深入研究复杂的图像处理理论,就可以在自己的程序中实现高效地查找位图功能。 ...

    位图操作|位图操作支持库

    9. **性能优化**:为了提高处理大量图像的效率,位图操作支持库往往会对常用操作进行优化,如使用内存映射文件、多线程处理等技术。 在“位图操作支持库200版静态版BmpOperatefne”这个文件中,我们可以推测这可能...

    位图处理C++类

    高效的位图处理可能涉及到内存映射文件、多线程处理或SIMD指令集的使用,以提高大规模图像处理的速度。 10. **错误处理**: 在处理文件时,良好的错误处理机制是必不可少的,以确保在文件损坏或其他问题时能够...

    NOKIA手机位图显示例子

    在NOKIA手机开发中,位图显示是创建用户界面和图形元素的关键技术。位图是一种图像文件格式,其中每个像素都有一个...通过研究和实践,可以掌握在NOKIA手机上高效、流畅地显示位图的方法,为用户提供更丰富的视觉体验。

    Oracle 数据库的位图索引原理与应用.pdf

    * 高效查询:位图索引可以快速定位满足条件的记录,从而提高查询效率。 * 节省空间:位图索引占用的空间较小,适合大规模数据处理。 * 灵活使用:位图索引可以与其他索引类型组合使用,提高查询效率。 四、位图索引...

    电子-emwin流位图使用方式及历程.rar

    总之,"电子-emwin流位图使用方式及历程.rar"这个压缩包提供了一个学习和实践emWin流位图应用的起点,通过这个资料,你可以逐步掌握如何在嵌入式系统中构建高效的图形用户界面,提升产品的用户体验。在实践中不断...

    24位图转16位图工具

    然而,24位图像的文件大小相对较大,不适合需要高效传输或存储的应用。 相反,16位BMP图像通常用于减少文件大小,提高处理速度,特别是在嵌入式系统或资源有限的设备上。16位图像可以表示大约65536种颜色,称为增强...

    位图浏览器

    在计算机视觉和图形设计领域,位图是最常见且广泛使用的图像格式之一。 位图浏览器的自动适应功能意味着,无论用户打开的位图文件尺寸多大,程序都能智能地调整显示窗口,确保图像能完整、清晰地呈现,避免因图片过...

    MFC 载入位图并显示

    在MFC(Microsoft Foundation Class)库中,载入和显示位图是一项常见的任务,尤其在创建用户...总的来说,MFC提供了丰富的类和函数来处理位图显示和用户交互,使得在Windows应用程序中集成图形功能变得简单而高效。

    位图工具.zip

    通过位图工具,他们可以更高效地处理8583报文,提高工作效率,同时减少因数据格式问题引发的错误。因此,无论是对于系统集成、支付网关开发,还是交易处理应用的开发,位图工具都是一个不可或缺的辅助工具。

    android中的位图操作demo

    综上所述,“android中的位图操作demo”主要展示了如何在Android平台上高效、灵活地处理位图,包括加载、绘制、创建倒影等操作,并强调了内存管理和性能优化的重要性。开发者可以通过这个示例学习到Android图形处理...

    一个VC++基础上的位图类

    总的来说,这个基于VC++6.0的位图类是对GDI位图操作的一种封装,它为开发者提供了一个高效、便捷的接口来处理位图,是开发图形界面应用程序的重要工具。如果你正在使用或计划使用这个类,你需要熟悉GDI的基本概念,...

Global site tag (gtag.js) - Google Analytics