gpt4 book ai didi

android - VideoView 没有填满整个屏幕

转载 作者:太空狗 更新时间:2023-10-29 16:04:59 25 4
gpt4 key购买 nike

我正在尝试为我的应用程序播放一个简短的介绍视频。由于是游戏,我首先创建了一个隐藏操作栏并进入全屏的主题。

样式.xml:

<style name="AppTheme.NoTitleBar" parent="AppTheme">
<item name="android:windowNoTitle">true</item>
</style>

<style name="AppTheme.NoTitleBar.Fullscreen" parent="AppTheme.NoTitleBar">
<item name="android:windowFullscreen">true</item>
</style>

然后,我创建了一个只有 VideoView 的布局:

activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/black"
tools:context=".MainActivity" >

<VideoView
android:id="@+id/videoView_intro"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="0dp"
android:layout_marginTop="0dp" />

</RelativeLayout>

最后,我通过以下代码播放了视频:

MainActivity.java:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

VideoView v = (VideoView) findViewById(R.id.videoView_intro);
v.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.intro));
/* This line had a code snippet for event handling, unrelated to this question */
v.start();
}

我成功播放了视频,但是 VideoView 在底部有一个小边距。我假设它与通知栏的高度相匹配。我怎样才能去掉那个边距?

编辑: 我不知道是否需要此信息,但该 Activity 被强制设置为横向。此外,我的目标是 API 级别 8 以上的所有 Android 设备,因此该解决方案必须与 API 级别 8 兼容。

AndroidManifest.xml:

    <activity
android:name="org.package.name.MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@style/AppTheme.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

最佳答案

您最好的选择可能是创建您自己的 VideoView 子类,覆盖 onMeasure(int, int)方法并获取屏幕尺寸并修改 VideoView 高度/宽度以匹配您设备的正确高度/宽度。

如果您不想这样做,那么其他更容易的选择是在全屏对话框中启动视频,或者您可以将 LayoutParams 设置为运行时生成的静态大小:

VideoView v = (VideoView) findViewById(R.id.videoView_intro);
v.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.intro));

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
v.setLayoutParams(new LayoutParams(metrics.widthPixels, metrics.heightPixels));

v.start();

关于android - VideoView 没有填满整个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18022341/

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