我正在使用android:configChanges="orientation|keyboardHidden|screenSize"
,因此当屏幕旋转从横向更改为纵向时,活动不会再次启动,反之亦然。
我有一些代码的想法,所以我会解决我的问题,但是为了那个我可以检查活动的屏幕方向onCreate()
,虽然我使用confidChanges方向???
答案 0 :(得分:3)
使用Activity的onConfigurationChanged方法。请参阅以下代码:
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
您还必须编辑清单文件中的相应元素以包含android:configChanges只需看下面的代码:
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
注意:对于Android 3.2(API级别13)或更高版本,当设备在纵向和横向之间切换时,“屏幕尺寸”也会发生变化。因此,如果您希望在开发API级别13或更高级别时由于方向更改而阻止运行时重新启动,则必须使用decalare
android:configChanges="orientation|screenSize" for API level 13 or higher .
答案 1 :(得分:0)
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int orient = display.getOrientation();
switch(orient) {
case Configuration.ORIENTATION_PORTRAIT:
if(!oAllow) {
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
break;
case Configuration.ORIENTATION_LANDSCAPE:
if(!oAllow) {
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
break;
}
}
答案 2 :(得分:0)
您可以在任何地方使用getResources().getConfiguration().orientation
来了解屏幕的方向。
并覆盖onConfigurationChanged(Configuration newConfig)
以在运行活动时处理方向更改
<强>更新强>
来自documentation:
在某些特殊情况下,您可能希望根据一种或多种配置更改绕过重新启动活动。这是通过其清单中的android:configChanges属性完成的。对于任何类型的配置更改,您说您在那里处理,您将收到对当前活动的onConfigurationChanged(配置)方法的调用,而不是重新启动。
答案 3 :(得分:0)
请检查一下它是否会检测到屏幕方向,您无需在清单中提及它就可以获得定向。
OrientationEventListener _orientaion = new OrientationEventListener(
MainActivity.this) {
@Override
public void onOrientationChanged(int arg0) {
System.out.println("Wortking");
}
};
_orientaion.enable();
我认为这会对你有帮助。