天天看点

[Android学习笔记八] 使用VideoView屏幕方向发生变化,视频方向自动切换

    一个Activity主要用来做播放视频使用,并且是全屏播放的话,主要采用横屏(Landscape orientation 显示宽度大于高度)显示视频,那么可以指定Activity的属性android:screenOrientation="landscape"让Activity在设备上以横屏显示。

    本文使用VideoView来显示视屏,Potrait(竖屏)时布局样式中宽匹配父布局,高匹配内容;Landscape(横屏)时布局样式中宽匹配内容,高匹配布局。视屏播放中,用户调正设备方向时,导致屏幕方向发生变化,视屏能够适应布局样式显示视频,并正常继续播放。

   示例图:

[Android学习笔记八] 使用VideoView屏幕方向发生变化,视频方向自动切换
[Android学习笔记八] 使用VideoView屏幕方向发生变化,视频方向自动切换

 1. 构建布局

    Potrait: res/layout/activity_videoview.xml

   Landscape: res/layout-land/activity_videoview.xml

   2.创建Activity

   3. 设置Activity属性

    代码中重写了onConfigurationChanged,可以在此处做配置发生变化的处理。

    在运行时发生配置更改,Activity被关闭,默认情况下重新启动,但在设置了Activity的configChanges属性的配置将防止活动被重新启动,Activity仍在运行并且onConfigurationChanged方法被调用。

    需要注意的是如果应用程序的target API level是13+的话(声明了minSdkversion和targetSdkVersion属性),需要同时设置screensize, 因为设备的横竖方向发生变化的时候,当前屏幕的可用尺寸也将发生变化。

下一篇: Vue生命周期