gpt4 book ai didi

Android 加速度计问题

转载 作者:行者123 更新时间:2023-11-29 22:21:22 25 4
gpt4 key购买 nike

我的游戏使用加速度计,一切正常,但我注意到某些手机会出现小问题。游戏强制屏幕方向为横向,但某些手机的默认屏幕方向为横向...

现在我一直假设用户必须倾斜他们的手机才能正确看到游戏,这意味着 X 轴的加速度计读数会使玩家在 Y 轴上移动,而 Y 轴读数会使玩家移动在 X 中。对于具有默认横向屏幕的手机,X 将对应于游戏中的 X,Y 将对应于游戏中的 Y(因为他们不需要倾斜手机。)

我的问题是我该如何处理?我可以调整代码以根据手机方向反转 X 和 Y 方向,那么如何以编程方式获取手机的当前方向?如果有更好的方法那就太好了

希望这是有道理的

编辑:

实际上可以安全地假设如果设备长度大于它的高度屏幕将默认为横向吗?

最佳答案

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int rotation = display.getRotation();

来自 http://developer.android.com/reference/android/view/Display.html :

public int getRotation ()

Returns the rotation of the screen from its "natural" orientation. The returned value may be Surface.ROTATION_0 (no rotation), Surface.ROTATION_90, Surface.ROTATION_180, or Surface.ROTATION_270. For example, if a device has a naturally tall screen, and the user has turned it on its side to go into a landscape orientation, the value returned here may be either Surface.ROTATION_90 or Surface.ROTATION_270 depending on the direction it was turned. The angle is the rotation of the drawn graphics on the screen, which is the opposite direction of the physical rotation of the device. For example, if the device is rotated 90 degrees counter-clockwise, to compensate rendering will be rotated by 90 degrees clockwise and thus the returned value here will be Surface.ROTATION_90.

您必须对这些设备进行试验,以确保 android 正确知道“自然”方向。如果是这样,则只需检查 ROTATION_90(或 ROTATION_270)以查看设备是否在其一侧。如果是,则切换 x 和 y 轴。

关于Android 加速度计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7094279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com