从C++创建一个 android.graphics.Bitmap
2022-09-03 13:07:38
我有一些基于NDK的C++代码,需要构建一个Android位图对象。我相信有一种方法可以直接从C++代码中执行此操作,但它不是最简单的事情;)
所以我想调用的方法是
Bitmap.createBitmap( width, height, Bitmap.Config.ARGB_8888 );
因此,要从本机代码执行此操作,我需要执行以下步骤。
- 找到类(android.graphics.Bitmap)。
- 获取“createBitmap”的静态方法 ID。
- 创建枚举。
- 调用静态方法。
(最终,我需要创建一个 jintArray 并将数据传入,但我稍后会担心)。
不过,我对第2步和第3步非常迷茫。我的代码目前看起来像这样:
jclass jBitmapClass = gpEnv->FindClass( "android.graphics.Bitmap" );
jmethodID jBitmapCreater = gpEnv->GetStaticMethodID( jBitmapClass, "createBitmap", "(IILandroid/graphics/Bitmap/Config;)Landroid/graphics/Bitmap;" );
但后来我被困住了。如何从本机 C/C++ 代码创建枚举?
此外,我进入GetStaticMethodID的最后一个参数是否正确?我不确定如何指定特定的对象,但我认为上述方法有效。不过,在枚举中可能是错误的!
提前致谢。