android:如何在本机代码中获得显示分辨率

时间:2013-01-17 10:50:53

标签: android screen

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

我看到有与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);

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

2 个答案:

答案 0 :(得分:4)

您可以在处理APP_CMD_INIT_WINDOW“app命令”时获取窗口大小“就像在您的原生活动中一样:

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);
        }

如果您想知道如何设置main.c结构和放大器,请查看native-activity示例NDK项目中的engineengine_handle_cmd回调。

答案 1 :(得分:-1)

如果你正在寻找像素值height_pixels和width_pixels是probs你正在寻找什么。有关详细信息,请参阅开发人员文档:

http://developer.android.com/reference/android/util/DisplayMetrics.html