使用
@Override
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();
}
}
我可以找到布局的方向。现在我想以某种方式锁定我的布局,例如setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
并查找真正的手机方向(布局设置为纵向,但用户出于某种原因将其设备保存在横向中)
答案 0 :(得分:0)
您有2个选项。
Manifiest
<activity android:name=".HelloAndroid"
android:label="@string/app_name"
android:configChanges="orientation">
在您的代码中
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.main);
// TODO
}
您必须覆盖此方法。
Here是一个很好的处理运行时更改教程。
修改强>
试试这个:
if (this.getWindow().getWindowManager().getDefaultDisplay()
.getOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
// portrait mode
} else if (this.getWindow().getWindowManager().getDefaultDisplay()
.getOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
// landscape
}
我已经通过这种方式进行了测试,它对我有用。