K700之图像内存处理

    开发者可能已经注意到在索爱K700上载入了一个非常大的图像之后却无法使用它。这起初看起来非常奇怪,但是当你了解了一些内存管理的知识后就会清楚其中的缘由了。

    索爱K700拥有大约800KB的内存专门用于图像的储存。当通过Image.createImage()方法载入一个图片后,如果图像内存的空间足够的话,载入的图像将被存储在这里面。然而,如果图像内存已经满了,图像将被存放在闪存里,并在需要显示的时候被移动到图像内存之中。即使我们只是想显示图像的一小部分,整个图像也必须被移动到图像内存中。

    所以,我们可以很顺利地载入大于800KB的图像,但是当尝试把它显示在屏幕上时就会显得太大而不适合图像内存并因此而不会被显示出来。

    为了确定一个图像能够被使用,你需要计算它需要使用多少图象内存。所有的图像,无论文件大小和格式,都以16位(RGB)格式加上可能的α通道(A)。依据格式不同,α通道可以是1位或者8位数据。如果图象仅仅拥有一种透明色,那么推荐使用1位α通道,这样就可以更快地画到屏幕上。