方向更改时,视频不会重新调整大小

时间:2013-09-13 04:39:32

标签: android video android-fragments surfaceview screen-orientation

我在片段中使用SurfaceView显示视频。如果我在播放视频时更改屏幕方向,则不会调整大小。例如,如果视频以横向尺寸(全屏)播放,则在旋转屏幕时,视频不会变为纵向尺寸。如果景观大小仍然存在。如果我以横向方式启动视频,它将不会更改为肖像。我在清单中使用以下内容:

    <activity
        android:name=".BassActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        >

我在“onCreate”

中有这个
 @Override
 public void onCreate(Bundle savedInstanceState) {
   if (VERBOSE) Log.v(TAG, "+++ onCreate +++");
     super.onCreate(savedInstanceState);        
     getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
     setRetainInstance(true);

我希望视频能够重新调整大小,例如在我旋转屏幕的同时从纵向到横向进行播放。

我还向onSurfaceChanged添加了一个Toast消息,以查看它何时被触发,但是当我旋转屏幕时它不会触发。如何在视频开始播放后重新调整视频大小?

1 个答案:

答案 0 :(得分:2)

使用此配置更改

如果android:configchanges =“orientation”

public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        // Checks the orientation of the screen
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
            // for example the width of a layout  
            int width = 300;
            int height = LayoutParams.WRAP_CONTENT;
            WebView childLayout = (WebView) findViewById(R.id.webview);
            childLayout.setLayoutParams(new LayoutParams(width, height));
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
            Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
        }
    }