以像素为单位的屏幕高度的奇怪行为?

问题描述:

在我的android应用程序中,有一个OpenGL渲染器覆盖在画布上。我正在测试的设备是Droid x。以像素为单位的屏幕高度的奇怪行为?

我将所有的绘图功能移到打开G1,但我注意到一个奇怪的问题。

看起来,画布从通知栏后立即开始绘制,但GL呈现从屏幕的顶端开始。

这有点重要,因为我的游戏物理基于画布中绘制的屏幕度量。

理想情况下,我想我可以通过某种方式将GLview向下移动通知栏的高度来解决问题,但我不知道如何做到这一点,或者如果可能的话。

更改下面的代码似乎使我的应用程序看起来正确,但我需要一种方式使它更加跨平台安全。

我通过改变解决它......

gl.glViewport(0, 0, width, height) 

gl.glViewport(0, -38, width, height) 

你使用多个绘制文件夹?在我的一个应用程序中,我使用以下代码,该代码基于获取手机选择的可绘制尺寸。

image = bgtile.getWidth(); 

if (image == 32) { 
     gl.glViewport(0, -19, width, height) 
    } 
    if (image == 42) { 
     gl.glViewport(0, -25, width, height) 
    } 
    if (image == 64) { 
     gl.glViewport(0, -38, width, height) 
    } 

如果手机选择LDPI图像,它的第一if,MDPI第二和LDPI第三。只需将32,4264更改为您的图像大小即可。