Java 屏幕高度(像素)的奇怪行为?
在我的android应用程序中,有一个OpenGL渲染器覆盖在画布上。我正在测试的设备是Droid x 我正在将所有绘图函数移到OpenGL,但我注意到一个奇怪的问题 画布似乎在通知栏之后立即开始绘制,但GL渲染从屏幕顶端开始 这有点重要,因为我的游戏的物理特性是基于画布上绘制的屏幕指标 理想情况下,我认为我可以通过某种方式将GLview向下移动通知栏的高度来解决这个问题,但我不确定该如何做,或者是否可能 更改以下代码似乎可以使其在我的应用程序中看起来正确,但我需要一种方法使其更跨平台安全 我通过改变Java 屏幕高度(像素)的奇怪行为?,java,android,screen,android-notification-bar,Java,Android,Screen,Android Notification Bar,在我的android应用程序中,有一个OpenGL渲染器覆盖在画布上。我正在测试的设备是Droid x 我正在将所有绘图函数移到OpenGL,但我注意到一个奇怪的问题 画布似乎在通知栏之后立即开始绘制,但GL渲染从屏幕顶端开始 这有点重要,因为我的游戏的物理特性是基于画布上绘制的屏幕指标 理想情况下,我认为我可以通过某种方式将GLview向下移动通知栏的高度来解决这个问题,但我不确定该如何做,或者是否可能 更改以下代码似乎可以使其在我的应用程序中看起来正确,但我需要一种方法使其更跨平台安全 我通
gl.glViewport(0, 0, 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
更改为图像的大小即可
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)
}