我希望我的活动仅在两种肖像模式下都可用 - 肖像和reversePortrait。我怎样才能做到这一点?当我设置android:screenOrientation="portrait"
时,它将强制活动仅在正常肖像中 - 反之亦然,使用reversePortrait。
请不要告诉我强行/锁定方向不好。我知道,但客户仍在请求它。感谢您的理解和任何想法。
更新:API级别11及更高级别
答案 0 :(得分:40)
如果您使用的是API级别9+,请使用android:screenOrientation="sensorPortrait"
。
纵向方向,但可以是普通或反向纵向 基于设备传感器。在API级别9中添加。
答案 1 :(得分:1)
为了后人的缘故,我使用它来向后兼容...
public final class OrientationHelper {
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
public static void setRequestedOrientationSensorPortrait(Activity activity) {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.FROYO) {
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
} else {
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
public static void setRequestedOrientationSensorLandscape(Activity activity) {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.FROYO) {
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
} else {
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
}
}
使用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OrientationHelper.setRequestedOrientationSensorPortrait(this);
super.setContentView(R.layout.my_layout);
}
答案 2 :(得分:0)
在AndroidManifest.xml
:
android:screenOrientation="portrait|reversePortrait"
android:configuration="keyboardHidden|orientation"
在WhateverActivity.java
:
protected void onConfigurationChanged(Configuration newConfig) {
int currentOrientation = getResources().getConfiguration().orientation;
if(newConfig.orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ||
newConfig.orientation == ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT) {
super.onConfigurationChanged(newConfig);
}
}
你可以试试这个:)