1

我想创建一个位图并使用 ndk 代码将其显示在屏幕上,任何人都可以告诉我如何做到这一点。示例代码很好理解。

4

1 回答 1

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 上搜索使用本机窗口的示例代码。

于 2012-07-12T04:46:27.527 回答