1

我有一个 OpenGL 应用程序,它需要以设定的屏幕尺寸(在本例中为 800x480)运行。我使用命令:

 this.getHolder().setFixedSize(800, 480)

在我的 GLSurfaceView 构造函数中执行此操作。这意味着在屏幕更大的设备上,我的应用程序仍然占据了整个屏幕。

我的结果是,在 onTouchEvent() 视图中,getX() 和 getY() 方法不再返回从 (0,0) 缩放到 (800,480) 的值。

我尝试将基于真实屏幕尺寸的比例因子应用于 getX() 值,但无法准确确定它应该是什么。

我将如何扩展 getX() 和 getY()?首先,我应该使用其他方法将屏幕缩放到我想要的分辨率吗?

4

1 回答 1

0

好的,我想我已经在这里回答了我自己的问题。经过更多调查,通过以下方式获取窗口大小:

Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int w = display.getWidth();
int h = display.getHeight();

并使用它来缩放 getX()、getY() 输出确实有效;我只需要忽略 display.getWidth() 返回的明显不正确的值。

于 2012-12-14T14:55:29.700 回答