此问题可能需要针对具体设备或应用程序进行调整,下面是一些可能有帮助的解决方法和代码示例:
public class MainActivity extends AppCompatActivity {
private int rotationLocked = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// lock the screen orientation
setRequestedOrientation(rotationLocked);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// orientation locking handling
if (newConfig.orientation != Configuration.ORIENTATION_PORTRAIT) {
setRequestedOrientation(rotationLocked);
}
}
}
上述代码将屏幕方向锁定为“Portrait”(竖屏)模式。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// lock the screen orientation
if (isScreenOrientationLocked()) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
}
}
private boolean isScreenOrientationLocked() {
ContentResolver resolver = getContentResolver();
return Settings.System.getInt(
resolver,
Settings.System.ACCELEROMETER_ROTATION,
0) == 0;
}
}
上述代码使用系统设置来确定是否锁定了屏幕方向,并相应地设置界面的显示。