我在片段中使用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消息,以查看它何时被触发,但是当我旋转屏幕时它不会触发。如何在视频开始播放后重新调整视频大小?
答案 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();
}
}