我知道您可以使用 android:screenOrientation 静态和 setRequestedOrientation 编程设置方向。但是问题是,如果我使用其中任何一个来设置屏幕方向,我就无法选择我想要的横向或纵向。也就是说,将手机翻转 180 度不会旋转视图,而只是倒置显示给用户。我不能使用 screenOrientation="sensor",因为在某些情况下,我只希望视图是横向或纵向的,很少同时使用。在您考虑外部硬件之前,这似乎微不足道。
如果我开发了一个应用程序并将布局设置为 android:screenOrientation="landscape",那么只有当机器人的左侧坐在桌子上时,该应用程序才能正确显示。不幸的是,左侧是 USB 端口所在的位置,因此如果插入电话,手机将不会很好地放在那一侧。当然,除非他们使用了扩展坞,但这不是我正在寻找的那种帮助。如果电话的右侧放在桌子上以留出电源线,则显示屏会上下颠倒。我尝试发布图像,但作为新用户我无法这样做。
我想知道的是如何以编程方式选择我希望用户看到的横向(Surface.ROTATION_90,Surface.ROTATION_270)或纵向(Surface.ROTATION_0,Surface.ROTATION_180)方向,但更重要的是允许他们这样做应用程序的设置活动。我已经用谷歌搜索了很长一段时间,我能找到的只有传感器,它们会告诉你方向/旋转何时改变以及改变了什么,但也没有显示如何以编程方式设置。