视频在屏幕方向改变时没有自适应缩放。

3

我有一个在Fragment中使用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消息以查看是否已触发,但是当我旋转屏幕时并没有触发。如何在视频开始播放后调整大小?

为您的播放器活动设置“android:configChanges =”keyboardHidden|orientation|screenSize”"。 - Biraj Zalavadia
1个回答

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();
        }
    }

谢谢!那个有效!我有一个SurfaceView,所以我只是用WebView替换了SurfaceView。 - sowens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接