首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android VideoView -屏幕方向改变后保持aspect-fill

Android VideoView是Android平台上的一个视图控件,用于播放视频文件。它可以在应用程序中嵌入视频播放器,并提供了一些基本的控制功能,如播放、暂停、停止和跳转等。

屏幕方向改变后保持aspect-fill是指在屏幕方向发生改变时,保持视频的宽高比不变,并填充满屏幕。这样可以确保视频在不同屏幕方向下的显示效果一致。

为了实现屏幕方向改变后保持aspect-fill,可以通过以下步骤进行操作:

  1. 在AndroidManifest.xml文件中,为对应的Activity添加以下属性:android:configChanges="orientation|screenSize"这样可以防止屏幕方向改变时Activity重新创建。
  2. 在Activity的布局文件中,将VideoView的宽度设置为match_parent,高度设置为wrap_content,以便根据屏幕方向自动调整宽高。
  3. 在Activity的代码中,重写onConfigurationChanged方法,监听屏幕方向改变事件,并在该方法中重新设置VideoView的宽高比。示例代码如下:@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { // 横屏 videoView.setVideoLayout(VideoView.VIDEO_LAYOUT_SCALE); } else { // 竖屏 videoView.setVideoLayout(VideoView.VIDEO_LAYOUT_ORIGIN); } }其中,setVideoLayout方法用于设置VideoView的宽高比,参数VideoView.VIDEO_LAYOUT_SCALE表示保持宽高比并填充满屏幕,VideoView.VIDEO_LAYOUT_ORIGIN表示保持原始宽高比。

推荐的腾讯云相关产品是腾讯云移动直播(https://cloud.tencent.com/product/mlvb),它提供了强大的移动直播解决方案,可用于在移动应用中实现视频直播功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android开发之使用VideoView实现视频的横屏播放、去除边框

代码如下: 布局文件中添加: <VideoView android:id="@+id/video" android:layout_width="match_parent...="match_parent" android:layout_height="match_parent" > <VideoView android..." /> 添加,就可以进行参数配置: String uri = "android.resource://" + getPackageName...完成上一步运行,发现虽然视频可以全屏,但显示完全失真,不是我们想要的效果,如果手机开启了自动转屏,我们会发现将手机转到横屏视频的播放效果才是我们想要的。如何让视频在播放时就自动转到横屏播放呢?...当前显示方式是横屏还是竖屏,都可以通过在AndroidManifest.xml文件中设置: 比如我当前播放视频时在Splash这个activity中播放,就可以在她的标签中添加screenOrientation属性控制屏幕方向

1.3K20

基于VideoView自定义控制面板的视频播放器

本文实例为大家分享了VideoView原生自定义视频播放器的具体代码,供大家参考,具体内容如下 项目用到的技术点和亮点 VideoView封装视频播放工具类 自定义视频控制面板 手势识别器的使用 1....VideoView封装视频播放工具类 视频播放这些其实都挺简单的,VideoView这个类都提供了相应方法,详细见代码 代码都比较简单,不过需要注意的是要在主线程中更新视频面板的UI信息。...android.widget.ImageView; import android.widget.VideoView; public class VideoBusiness implements MediaPlayer.OnPreparedListener...*事件标志*/ private int mLastPos; public VideoBusiness(Activity activity){ this.activity = activity; // 保持屏幕高亮...videoView,VideoController controller,String sourceUrl){ this.mVideoView = videoView; this.mController

2.1K20

android视频系列:视频解码篇--android上视频播放的实现

播放时,从容器里取出一张图片,放到屏幕上显示,隔一点时间,再从容器里取出下一张图,放到屏幕上。按次序把图片一张一张显示到屏幕上,等到最后一张也显示到屏幕,播放就完成了。...所以,视频容器里,放置的是压缩的图像数据。那么播放器播放,就需要先解压缩成图像,再放到屏幕上。所以,播放器的两个核心功能,一个是解码,一个是显示。...我们来看看,Android为我们提供了哪些对象,可以让我们做视频的播放。 Android播放视频 下面我们介绍3种在Android上播放视频的方法。 1. 使用VideoView播放视频 ?...onSurfaceChanged()的调用发生在每次的onSurfaceCreated()之后,和每次surface size发生改变时。...至此,opengl拿到了解码的图像数据,就可以自如的做任何图像相关的处理,渲染到屏幕上。 总结 以上在Android上实现的三种播放视频方法,从简单到复杂,可以根据自己功能的需要,灵活进行选择。

3.9K131

Android 实现视频字幕Subtitle和横竖屏切换示例

还有就是实现了即使旋转按钮关闭,根据方向感应器也能做到横竖屏切换。 本文用的是系统VideoView,然后播放sd卡中的视频来作为演示(源码中带有f2.mp4和f2.srt,运行时拷贝到sd卡就行)。...SettingNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } // String rawUri = "android.resource...,将自动识别当前屏幕方向 */ autoSwitchScreenOrientation(); } public void handToFullScreen() { setRequestedOrientation...srtbean.getEndTime()) { tvSrt.setText(srtbean.getSrtBody()); //显示过的就删掉,提高查询效率 srtList.remove(i); break;//找到就没必要继续遍历下去...项目源码,点击下载…… 以上这篇Android 实现视频字幕Subtitle和横竖屏切换示例就是小编分享给大家的全部内容了,希望能给大家一个参考。

1.7K31

Android弹幕功能实现,模仿斗鱼直播的弹幕效果

="match_parent" android:layout_height="match_parent" android:background="#000"> <VideoView...注意一定要将DanmakuView写在VideoView的下面,因为RelativeLayout中添加的控件会被覆盖在上面。...这里我们并没有什么特殊的要求,因此一切都保持默认。 另外我们还需要创建一个弹幕的解析器才行,这里直接创建了一个全局的BaseDanmakuParser。...虽说DanmakuView已经在正常工作了,但是屏幕上没有任何弹幕信息的话我们也看不出效果,因此我们还要增加一个添加弹幕消息的功能。...然后进行判断,如果操作界面是隐藏的就将它显示出来,如果操作界面是显示的就将它隐藏掉,这样就可以简单地通过点击屏幕来实现操作界面的隐藏和显示了。

4.2K90

Android开发笔记(一百二十五)自定义视频播放器

setPrevNextListeners : 设置前一个按钮与一个按钮的点击监听器。如果没调用该方法,那么前一个按钮与一个按钮都不会展示。...两种集成方式在手机屏幕的展示效果基本一样,开发者可根据视频的展示位置来决定采用哪种方式。 下面是VideoView和MediaController的播放效果截图: ?...android.widget.Toast; import android.widget.VideoView; import com.aqi00.lib.dialog.FileSelectFragment...如果只是修改代码,其实还不能完全实现自动全屏的功能,主要问题如下: 1、屏幕顶部的系统状态栏依然留在屏幕顶端; 2、App自身的导航栏也仍旧没有隐藏; 3、在视频播放途中,如果手机屏幕发生切换,例如从竖屏变为横屏...因为默认情况下,App每次切换屏幕都会重启Activity,即先执行原页面的onDestroy方法,再执行新页面的onCreate方法,这便导致还在播放当中的视频被中断返回了。

2.7K40

全民K歌折叠屏适配探索

故折叠屏适配的主要目的:在应用运行时无论屏幕素质(尺寸、密度、比例、方向、装载 )如何变化,应用总能以相对合理的方式给用户展示数据信息,且保证稳定运行。 ?...PS:折叠屏的变化过程是屏幕的重新装载过程,其物理尺寸发生了改变,所以需要增加新的支持。一般情况下,这样配置就足够了,但全民K歌依然有切换的展示问题,虽然不重建了,但是界面样式依然不友好。...系统更新流程 常规情况下,在屏幕折叠状态发生改变时,系统会强制重新发起一次从RootView到各个子View的测量、布局操作。...触发时机问题 首先,我们的触发计算高宽的时机一般有2个: 详情页数据拉取完成时进行一次计算(预先布局) 视频启播根据视频的真实比例再进行一次计算 在之前,我们有说到屏幕出现素质改变时,其会触发View...(对于应用来说,此时是系统的内置屏幕发生了改变),而非简单的分辨率调整过程。

2.4K30

Android ijkplayer的使用方法解析

下面我给大家分享一份编译好的ijkplayer源码,由于比较大,分了三个包才上传完成,需要三个包都下载才能一起解压: ijkplayer_jb51.rar 我们下载完成,进入android/ijkplayer...(); //注册一个回调函数,在视频预处理完成调用。...在视频预处理完成被调用。此时视频的宽度、高度、宽高比信息已经获取到,此时可调用seekTo让视频从指定位置开始播放。...public class PlayerManager { /** * 可能会剪裁,保持原视频的大小,显示在中心,当原视频的大小超过view的大小超过部分裁剪处理 */ public static final...clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); } } } /** * <pre * fitParent:可能会剪裁,保持原视频的大小

8.9K20

Android中文API —— VideoView

前言   本章内容是android.widget.VideoView,版本为Android 3.1 r1,翻译来自"唐明",由"cnmahj"审核,再次感谢"唐明"!...VideoView 译者署名:唐明 审核:cnmahj 版本:Android 3.1 r1 结构 继承关系 public class VideoView extends SurfaceView implements...                            android.widget.VideoView 类概述 (图片转载至这里) 用于播放视频文件。 ...对应用户按下一次方向键, 他们通常作为一次移动处理(为了表现来自轨迹球的更小粒度的移动信息,他们返回小数)。...void pause () (译者注:使得播放暂停) public int resolveAdjustedSize (int desiredSize, int measureSpec) (译者注:取得调整的尺寸

1.4K30

Android开发中的重力传感器用法实例详解

本文实例讲述了Android开发中的重力传感器用法。...分享给大家供大家参考,具体如下: 重力传感器与方向传感器的开发步骤类似,只要理清了期中的x,y,z的值之后就可以根据他们的变化来进行编程了,首先来看一副图 ?...接下来看一个Android用重力传感器做横竖屏切换的例子 在播放视频的时候,可能要做横竖屏的切换,但是,用户可以设置自己的手机关掉屏幕旋转,这个时候就需要想其他的办法了,比如:重力传感器。...Sensor.TYPE_ACCELEROMETER); listener = new OrientationSensorListener(mHandler); // 根据 旋转之后/点击全屏之后 两者方向一致...希望本文所述对大家Android程序设计有所帮助。

2.1K20
领券