以纵向模式在videoview中全屏制作视频[重复]
Posted
技术标签:
【中文标题】以纵向模式在videoview中全屏制作视频[重复]【英文标题】:Make video in videoview full screen in portrait mode [duplicate] 【发布时间】:2016-09-30 02:06:42 【问题描述】:我在 videoview 中有一个视频,它作为我的登录/注册活动的背景播放和循环播放。视频播放和循环很好,只是它没有覆盖整个屏幕。活动被锁定为纵向模式,但视频仅显示在屏幕的下半部分(就像在横向模式下一样)。 videoview 本身确实覆盖了整个屏幕。这是我当前的代码。
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launcher);
VideoView videoView = (VideoView) findViewById(R.id.launcherVideo);
Uri src = Uri.parse("android.resource://com.package/raw/video");
videoView.setVideoURI(src);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
@Override
public void onPrepared(MediaPlayer mp)
mp.setVolume(0, 0);
mp.setLooping(true);
);
//videoView.setMediaController(new MediaController(this));
videoView.start();
这是我的xml
<VideoView
android:id="@+id/launcherVideo"
android:layout_
android:layout_
android:layout_above="@+id/linearLayout" />
如何让视频在任何尺寸的设备上全屏显示?
【问题讨论】:
【参考方案1】:没有看过整个布局 xml,我猜this 可能会有所帮助。
尝试使用 RelativeLayout 包装您的 VideoView 并将其与父级对齐:
<VideoView
android:id="@+id/launcherVideo"
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true">
【讨论】:
【参考方案2】: <RelativeLayout
android:id="@+id/video_layout"
android:layout_
android:layout_
android:layout_below="@+id/progress_limit">
<com.example.FullScreenVideoView
android:id="@+id/video_view"
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"/>
<ProgressBar
android:id="@+id/progress"
android:layout_
android:layout_
android:indeterminate="false"
android:layout_centerInParent="true"
/>
</RelativeLayout>
并且还使用它对我有用的代码
public class FullScreenVideoView extends VideoView
public FullScreenVideoView(Context context)
super(context);
public FullScreenVideoView(Context context, AttributeSet attrs)
super(context, attrs);
public FullScreenVideoView(Context context, AttributeSet attrs, int defStyle)
super(context, attrs, defStyle);
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
【讨论】:
【参考方案3】:您可以尝试使用TextureView
而不是VideoView
,就像answer 描述的那样
【讨论】:
以上是关于以纵向模式在videoview中全屏制作视频[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Android VideoView 方向,如 Youtube 应用程序
Android VideoView 中的纵向视频不会占用整个屏幕宽度
React Native:如何使用 expo 在 webview 中制作全屏 youtube 嵌入视频(没有 react-native 链接)