这个问题可能看起来很相似,但不是那种。
我正在开发一个从互联网上传输视频的Android应用程序,在那里我必须实现全屏按钮,切换屏幕横向(全屏)和肖像。
当我需要去风景时,从纵向模式调用方法setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
但是下次单击按钮而不是调用方法setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
时,屏幕不会以纵向模式返回。
注意:我无法使用两个单独的纵向和横向布局
更新
屏幕旋转按钮的工作原理是
mScreenRotateButton.setOnClickListener(new OnClickListener() {
@Override
void onClick(View v){
if (inPortrait) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
}
}});
当我在物理上旋转设备时执行此操作一次后,屏幕不会旋转。
答案 0 :(得分:0)
您可以使用布尔值检查状态并恢复原状。这是我使用切换按钮完成的片段。
aSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
});