我想创建一个位图并使用 ndk 代码将其显示在屏幕上,任何人都可以告诉我如何做到这一点。示例代码很好理解。
1 回答
从 Gingerbread 开始,NativeWindow 是您在 ndk 屏幕上显示位图的选择。
android-ndk-r7b/platforms/android-9/arch-arm/usr/include/android/native_window.h
寻找下面的两个函数, int32_t ANativeWindow_lock(ANativeWindow* window, ANativeWindow_Buffer* outBuffer, ARect* inOutDirtyBounds); int32_t ANativeWindow_unlockAndPost(ANativeWindow* 窗口);
它看起来很像 android SDK 级别的 java Canvas,对吧?
要使用nativeWnd,您必须将java SurfaceHolder 的一个jobject 传递给ndk,然后在surface 上获取以制作nativeWnd。
然后,使用 ANativeWindow_setBuffersGeometry 设置帧大小和颜色格式
然后,ANativeWindow_lock 锁定表面
然后,做你的图片 bitblt
最后,ANativeWindow_unlockAndPost - 你的位图在屏幕上
您也可以在 Internet 上搜索使用本机窗口的示例代码。