gpt4 book ai didi

android - 在屏幕方向更改android上调整视频 View

转载 作者:行者123 更新时间:2023-11-30 03:35:07 25 4
gpt4 key购买 nike

我有一个 VideoView 并且正在流式传输 mp4 文件,它工作正常。但是,我试图在纵向时将视频设置为在屏幕上居中,而在横向时将其设置为全屏。我正在尝试的代码在下面,但它不起作用。如果我切换到横向,它不会改变任何东西,直到我切换回纵向,然后它是全屏并且对于手机的纵向 View 来说太大了。如何让我的视频 View 在横向时调整为全屏,并在纵向时切换回标准居中?我已将 configChanges="orientation"添加到 list 中的 Activity 中。

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) videoView.getLayoutParams();
lp.addRule(RelativeLayout.CENTER_IN_PARENT, 1);
lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 1);
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT, 1);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, 1);
videoView.setLayoutParams(lp);
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) videoView.getLayoutParams();
lp.addRule(RelativeLayout.CENTER_IN_PARENT, 1);
lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT, 0);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, 0);
videoView.setLayoutParams(lp);
}
}

此外,我的印象是在布局参数后设置 0,1(假,真)将添加或删除规则。这是正确的吗?

提前感谢您的帮助!

最佳答案

不是,第二个参数是规则相对 View 的id。您需要使用 removeRule 来删除它。

老实说,我认为构建一个新的 LayoutParam 对象并替换旧的对象更容易。此外,您可能需要在更改后调用父级的 requestLayout,我不确定它是否会自动执行。

关于android - 在屏幕方向更改android上调整视频 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16736946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com