安卓模拟器 - 屏幕旋转

18

我想测试模拟器上手机的旋转功能,我在各处看到需要使用Ctrl+F11,但这只会旋转模拟器画面,并不会触发配置更改事件或重新绘制活动。

下面是使用Ctrl+F11的效果:

emulator rotation

那么,我应该使用什么方法来模拟真实的旋转呢?


解决方案:https://dev59.com/rl8e5IYBdhLWcg3wVJEC#43093208 - Benny
5个回答

50

此外,您还可以执行以下操作:

禁用加速度计控制旋转 - 只需执行一次此操作

adb shell content insert --uri content://settings/system --bind name:s:accelerometer_rotation --bind value:i:0

旋转横向:

adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:1

旋转肖像:

adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0

旋转横屏画面:

adb shell content insert --uri content://settings/system  --bind name:s:user_rotation --bind value:i:3

翻转颠倒人像:

adb shell content insert --uri content://settings/system  --bind name:s:user_rotation --bind value:i:2
如果您拥有WRITE_SETTINGS权限,您可以在Java代码中通过内容提供程序进行写入。

今天我尝试了最新的Android SDK命令。插入命令变成了更新命令。完整的命令现在是"./adb shell content update --uri content://settings/system --bind name:s:user_rotation --bind value:i:0"。好的,只是提醒自己。 - Charles Wu

5

你把应用程序设置为横屏和竖屏都可以工作了吗? - KPath001
你想让安卓重新创建和销毁吗?抱歉,我不确定你在问什么。 - KPath001
1
当手机旋转时,当前活动将被销毁并创建相同的活动。这是默认行为。但在模拟器中,我不知道该怎么做。Ctrl+F11只会改变模拟器的方向。您可以在我的第一篇帖子中看到它的图像, 默认计算器数字没有正确旋转。 - Stephane Mathis
1
旋转在我的手机上可以正常工作。我认为我不需要在清单文件中允许旋转? - Stephane Mathis
对我来说,似乎也没有得到答案。我猜现在的解决方法就是不要依赖模拟器。或者,如果你必须使用模拟器,在清单中只进行“android:screenOrientation=”landscape”测试你的应用程序是否正常工作。 - David T.
显示剩余4条评论

4
根据Nicolas Jafelle在这里的建议,您可以尝试在模拟器设置中添加“键盘支持→是”的属性。这对我很有帮助。
PS:它还允许您的模拟器从键盘接收输入。更多信息请参见这里

2
为什么这被标记为答案?问题是如何获得真正的旋转,就像在真实的手机上发生的那样,而不是如何使用键盘。 - Joel
3
因为这是ADT中的一个错误,如果没有这个硬件键盘技巧,它就无法正常工作。即使在最新发布的ADT 21中也是如此。请参考:http://code.google.com/p/android/issues/detail?id=34237。 - Gramotei
类似于上述解决方案,您可以通过将“hw.keyboard=yes”添加到所需模拟器的config.ini中来实现这一点。 - Amir Uval
我已经启用了键盘支持,它只改变了模拟器的屏幕,但视频、图片和本地应用程序没有得到正确的旋转。 - paul

0

0

我和你做了同样的事情,在 AVD 中打开了“自动旋转屏幕”选项。效果非常好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接