以像素为单位的屏幕高度的奇怪行为?
问题描述:
在我的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
,42
和64
更改为您的图像大小即可。