Android Bitmap本机API创建android.graphics.Bitmap实例

时间:2011-08-25 01:10:15

标签: android bitmap java-native-interface

我正在使用本机代码,我有一个像素缓冲区(即int * buffer)。我想从缓冲区创建一个具有特定宽度和高度的android.util.Bitmap实例。

目前,我将缓冲区返回给Java并使用android.graphics.Bitmap.createBitmap()创建一个Bitmap实例。但它看起来效率不高,它会在我的手机中抛出OutOfMemoryException(资源更少),但在平板电脑上工作(更多资源)。

我的问题是:如何以本机方式创建Bitmap实例(即在C中创建此类实例并使用JNI接口以Java形式返回)?

1 个答案:

答案 0 :(得分:1)

位图有多大?如果它在Java中抛出OOM,任何从C传回它的尝试都可能会这样做 - 它仍然需要消耗Java内存。考虑一种位图格式,每个像素占用的空间更少 - 比如RGB_565或ARGB_4444。