2009-08-18 46 views
7

在BlackBerry中,在内存使用情况和性能方面使用Bitmap类还是EncodedImage更好?有关于使用这些类的具体提示吗?在黑莓中使用Bitmap或EncodedImage会更好吗?

+2

如果你的源图像实际上是一个PNG,GIF,JPEG或任何,你必须使用EncodedImage。设置BitmapField时,可以使用位图创建它,也可以稍后设置EncodedImage。奇怪的是,你只能在创建时将其设置为可聚焦,其中需要位图。除非EncodedImage在内部也保留一个解码副本(没有想法 - 也可能取决于JDE版本),但是我注意到getBitmap()通常非常快,所以Bitmap将使用更多的内存(完全解码的图像)。你可能需要做你自己的分析,看看你的确切用例... – lilbyrdie 2009-08-21 16:57:14

+1

这不应该是一个答案,而不是评论? :) – KarolDepka 2011-08-07 21:38:50

回答

7

我的观察是,更好:

  • 使用位图和drawBitmap为需要重绘经常(在比赛前的背景图像)

也许是因为位图是一个原始格式,因此没有表现元素在drawImage前解码EncodedImage。另一方面,GIF动画与EncodedImage完美配合。

  • 使用EncodedImage对动画或大量资源的

当您从GIF,PNG,JPG格式的加载位图,他们无论如何都会被开辟为一个EncodedImage(例如照片或德科雷元素),如果你这样做了很多次,也可以打败性能(例如50秒加载从资源14 PNG位图上的大胆,平均尺寸为80 KB,调整好2秒装入EncodedImages)

UPDATEstated by Fostah EncodedImage有一个getBitmap()函数您可以使用将任何EncodedImage转换为位图。所以你可以加载EncodedImage然后用作位图

相关问题