1

在我的 android 应用程序中,有一个 OpenGL 渲染器覆盖在画布上。我正在测试的设备是 Droid x。

我正在将所有绘图功能移至 Open Gl,但我注意到一个奇怪的问题。

似乎画布在通知栏之后立即开始绘制,但 GL 渲染从屏幕尖端开始。

这一点很重要,因为我的游戏的物理特性是基于在画布中绘制的屏幕指标。

理想情况下,我认为我可以通过将 GLview 向下移动通知栏的高度来解决问题,但我不确定如何执行此操作或是否可能。

更改以下代码似乎使它在我的应用程序中看起来正确,但我需要一种方法来使其更安全。

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

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

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

1 回答 1

2

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

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,42和更改64为图像的大小即可。

于 2011-12-25T18:12:59.843 回答