关于Android模拟器:Android模拟器 – 屏幕方向无法正常工作

Android Emulator - Screen orientation does not work properly

我创建了一个虚拟的Android设备,480x800,运行它,并且我已经找到了如何更改屏幕orientation(纵向横向,CTRL + F11 / CTRL + F12 / KP7 / KP9),我使用这些键来 改变orientation

但是当我尝试其中一个键时,虚拟屏幕会旋转90度,但方向不会改变。 因此,按钮垂直放置在屏幕上,所有文本也是如此。 就像一张旋转90度的照片。

如何将虚拟度数实际切换到其他布局文件(/res/layout-land/activity_entry.xml)? Eclipse的图形查看器可以正确地在landscape/portrait之间切换。

编辑
我在onCreateOptionsMenu(Menu menu)下的活动中添加了这部分
方法,但应用程序无法识别屏幕方向更改:

1
2
3
4
5
6
7
8
9
10
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    Context context = getApplicationContext();
    CharSequence text ="Orientation changed";
    int duration = Toast.LENGTH_SHORT;

    Toast toast = Toast.makeText(context, text, duration);
    toast.show();
}

编辑2
当我从onCreate()方法中调用this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)时,它可以很好地工作。


您可能会发现,就像我所做的那样,方向更改实际上已经实现,但屏幕仅比您预期的更改几秒钟。换句话说,答案可能是"耐心的蚱蜢"。


首先关闭数字锁,然后按7或按9并检查模拟器的方向已更改,其他方式更改模拟器的方向是按ctrl + f12


检查您是否在Manifest文件中为该活动设置了任何android:screenOrientation。如果是,请将其删除并检查。

如果不工作,它似乎是在android问题论坛中报告的错误。点击这里


我最近碰到了这个,这里提供的答案并没有解决它。不过我发现这篇文章:

Android模拟器无法旋转到横向

其中提到某些模拟器目标中存在错误(例如我使用的是19个)。

只需将目标更改为17即可使旋转开始正常工作。