android:如何在 native 代码中获取显示分辨率

标签 android screen

在 android 中是否可以在 native 代码中获取显示尺寸?

我看到有EGL相关的函数:

EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);

surface = eglCreateWindowSurface(display, config, engine->app->window, NULL);

eglQuerySurface(display, surface, EGL_WIDTH, &w);

eglQuerySurface(display, surface, EGL_HEIGHT, &h);

但我需要尺寸而不创建任何表面。

最佳答案

您可以在处理 APP_CMD_INIT_WINDOW “app 命令”时获取窗口大小,就像在您的 native Activity 中这样:

static void engine_handle_cmd(struct android_app* app, int32_t cmd) {
    struct engine* engine = (struct engine*)app->userData;
    switch (cmd) {
    case APP_CMD_INIT_WINDOW:
        if (engine->app->window != NULL) {
            int width = ANativeWindow_getWidth(engine->app->window);
            int height = ANativeWindow_getHeight(engine->app->window);
        }

如果您想了解如何设置引擎结构,请查看native-activity示例NDK项目中的main.c & engine_handle_cmd 回调。

关于android:如何在 native 代码中获取显示分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14377407/

相关文章:

android - setBottomSheetCallback 已弃用

Android handle 方向改变 w/o 旋转屏幕

html - 添加始终显示在屏幕底部的页脚?

android - 从不扩展 Activity/服务的类访问应用程序上下文

Android:如何找到不会导致应用崩溃的位图范围?

android - 解析推送通知异常: "unauthorized: master key is required"

android - 我的应用程序因不同的屏幕尺寸而崩溃

android - 将 Tesseract 和 Opencv 添加到 Android.mk (Android Studio)

Android 布局树,人类可读的解释?

android - 接收屏幕触摸事件