Android模拟器 - 屏幕方向不能正常工作

问题描述:

我创建了一个虚拟的Android设备,480x800,运行它,当我已经找到了如何更改屏幕orientation(人像风景,CTRL + F11/CTRL + F12/KP7/KP9),我用这些键来改变orientationAndroid模拟器 - 屏幕方向不能正常工作

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

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

编辑
我加入这部分的活动权限下这个onCreateOptionsMenu(Menu menu) 方法,但应用程序不能识别屏幕方向的变化:

@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(); 
} 

EDIT 2
当我打电话this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)onCreate()方法,它很好地工作。

+0

我认为这是Ctrl + F11和Ctrl + F12,试试这个 – Numair

+0

Ctrl + F12,显然会起作用。 http:// *。com/questions/1991318/how-to-change-emulator-screen-orientation – Anupam

+0

如果您在Android清单文件的活动中设置了它,请删除android:screenOrientation –

首先数字锁定,然后按或按和检查仿真器的方向改变等方式来改变模拟器的方向是按CTRL + F12

+2

KP9和KP7都将AVD旋转90度,但屏幕没有重新排列,一切都只是90度旋转,就像图像 – stealthjong

+1

为什么这被认为是对这个问题的答案?无论您是按下CTRL F12还是Num Pad 7还是Num Pad 9或....模拟器程序都会旋转,但应用程序不会收到通知。 –

+0

我已经在多个Android版本中使用最简单的hello world应用程序尝试过它,可以使用或不使用Google API。启用或不启用硬件键盘。带或带有快照。无论是否使用GPU。使用Eclipse或Android工作室。它只是不起作用! (它很久以前就用过了。) –

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

如果不工作,它似乎就像android问题论坛中报告的错误。检查here

+0

但是,一旦删除它,活动将被取消并在方向更改时重新创建。要使活动在不重新创建的情况下处理更改,请使用清单中的'android:configChanges'属性。 –

+0

我没有那套。对于任何活动。另外,我确实尝试过KP7/KP9和CTRL + 11/12,但无济于事。 – stealthjong

+0

关闭数字锁定后请尝试单击7。 –

您可能会发现,就像我所做的那样,方向更改实际上已生效,但屏幕仅在比预期晚几秒后才改变。换句话说,答案可能是“忍耐蚱蜢”。

我最近遇到这个问题,这里提供的答案没有解决。但我发现这个职位:

Android emulator not rotating to landscape

,其中提到有一些模拟器目标(19比如我使用它)的错误。

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