android 旋转屏幕全屏,重新组合活动布局以在旋转屏幕时全屏播放video

在一个活动中,我嵌入了一个video窗口小部件(与SurfaceView相关联的VideoView或MediaPlayer),当旋转屏幕时,应调整其大小。 此活动用作TabHost中的内容。

我目前的做法

为了处理屏幕旋转,我提供了两个布局,一个用于纵向,另一个用于横向(放置在./res/layout和./res/layout-land文件夹中)。

这种方法的问题是为每个旋转创建了一个新的Activity,因此我不使用相同的MediaPlayer(或VideoView)=>每次旋转屏幕时,我都会从头开始播放video。 当video从网络流式传输时,无法在video中存储位置,以便在重新启动其他活动中的video时寻找此位置。

我想做什么

我需要能够在旋转屏幕时翻译/缩放/隐藏Activity内的视图。 翻译/缩放需要维护布局组织,以便具有适应不同屏幕尺寸的布局。

IZYno.png

我的问题

如何将视图转换/移动到屏幕的左上角?

如何隐藏/翻译屏幕外的视图以使视图消失?

如何缩放/调整视图大小以调整其大小到它周围的可用空间?

我需要实现哪个接口回调才能获得屏幕旋转通知以触发这些转换?

我终于find了做到这一点的好方法。 在Android文档中,指定当您需要处理修改(方向,键盘……)而不重新创建新Activity时,您应该通过覆盖Activity类的onConfigurationChanged方法来完成。 您必须在Activity的清单文件中指定合理的修改。

你可以在这里find更多相关信息。

就我而言,我的活动清单看起来像:

在我的MyActivity Activity中,我添加了以下方法:

@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); int visibility = View.VISIBLE; if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { visibility = View.GONE; } getTabHost().getTabWidget().setVisibility(visibility); }

我的活动具有以下布局:

这样,当我隐藏/显示tabWidget栏时,VideoView(添加到TabHost的内容会被resize,当在横向时,我有全屏观看电影。

我希望它会帮助你们中的一些人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值