我的游戏使用加速度计,一切正常,但我注意到某些手机会出现轻微问题.游戏会强制将方向设为横向,但是某些手机的屏幕默认方向为横向…
现在,我一直以为用户必须倾斜手机才能正确观看游戏,这意味着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加速度计问题全部内容,希望文章能够帮你解决Android加速度计问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)