小编典典
我的代码中有此内容,因此我可以给您答案。
1)获取createBitmap的静态方法ID(int宽度,int高度,Bitmap.Config配置):
jclass java_bitmap_class = (jclass)env.FindClass("android/graphics/Bitmap");
jmethodID mid = env.GetStaticMethodID(java_bitmap_class, "createBitmap", "(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;");
注意Bitmap.Config的签名,其中带有$符号。
2)使用给定值为Bitmap.Config创建枚举:
const wchar_t config_name[] = L"ARGB_8888";
jstring j_config_name = env.NewString((const jchar*)config_name, wcslen(config_name));
jclass bcfg_class = env.FindClass("android/graphics/Bitmap$Config");
jobject java_bitmap_config = env.CallStaticObjectMethod(bcfg_class, env.GetStaticMethodID(bcfg_class, "valueOf", "(Ljava/lang/String;)Landroid/graphics/Bitmap$Config;"), j_config_name);
在这里,我们从命名值创建Bitmap.Config枚举。另一个可能的值字符串是“ RGB_565”。
3)调用createBitmap:
java_bitmap = env.CallStaticObjectMethod(java_bitmap_class, mid, w, h, java_bitmap_config);
2020-11-13