我需要在正常方向上播放webview中的嵌入视频(如webview,如PORTRAIT或LANDSCAPE),并强制进入全屏视频中的LANDSCAPE模式。 所以我按照以下步骤做了:
android:configChanges="keyboardHidden|orientation|screenSize"
。 ,
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
LogUtil.d(TAG, "onShowCustomView");
super.onShowCustomView(view, callback);
mHandler.post(new Runnable(){
@Override
public void run()
{
Activity activity = getActivity();
if(activity == null){
return;
}
activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
});
}
@Override
public void onHideCustomView()
{
super.onHideCustomView();
mHandler.post(new Runnable(){
@Override
public void run()
{
Activity activity = getActivity();
if(activity == null){
return;
}
activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
});
}
;; 这样做之后,通常它工作正常。但它有一个错误:在全屏播放视频之前,活动/片段可以根据电话方向旋转,但是当我从全屏(LANDSCAPE模式)返回到嵌入式(PORTRAIT模式)后,活动/片段永远不会改变其方向。我该如何处理这个案子?我只想恢复到原始状态,而不是锁定方向。 感谢
答案 0 :(得分:0)
是的,您可以控制屏幕方向programmatically。
答案 1 :(得分:0)
设置方向后添加此行
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
这不是一个完美的解决方案,但在紧要关头工作非常方便。
android:configChanges
可能非常危险,因为它会阻止操作系统正常清理和重新创建活动。