java AutoRotate不会在setRequestedOrientation之后更改OnConfiguration
我和ExoPlayer一起工作,我希望当我按下全屏图标时,它能进入风景区,为此,我做到了
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
我还希望用户能够在将手机置于横向模式时进入全屏,在将手机置于纵向模式时离开全屏,为此,我只需执行以下操作:
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
img_fullscreen.setImageResource(R.drawable.ic_baseline_fullscreen_exit_24_white);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY|View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
player_page.setBackgroundColor(getColor(R.color.black));
RelativeLayout.LayoutParams rel = (RelativeLayout.LayoutParams) video_container.getLayoutParams();
rel.width = ViewGroup.LayoutParams.MATCH_PARENT;
rel.height = ViewGroup.LayoutParams.MATCH_PARENT;
video_container.setLayoutParams(rel);
isFullscreen = true;
} else {
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
img_fullscreen.setImageResource(R.drawable.ic_baseline_fullscreen_24_white);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
player_page.setBackgroundColor(getColor(R.color.white));
RelativeLayout.LayoutParams rel = (RelativeLayout.LayoutParams) video_container.getLayoutParams();
rel.width = ViewGroup.LayoutParams.MATCH_PARENT;
rel.height = (int) (230*getApplicationContext().getResources().getDisplayMetrics().density);
video_container.setLayoutParams(rel);
isFullscreen = false;
}
}
我遇到的问题是,如果用户按下全屏图标,视频进入全屏,autorotate将不再工作(并且它不再触发此事件)
这个问题是重复的,我重新发布的原因是因为另一个问题很老,没有正确的答案。 链接:Android: Auto Rotate not working after setRequestedOrientation
共 (0) 个答案