我试图将线性布局内的视频视图拉伸到全屏,但应用程序不会将视频视图的宽度拉伸到Android屏幕。这是我的代码
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="720dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_gravity="fill_horizontal"
android:layout_marginTop="140dp" >
<VideoView
android:id="@+id/videoView1"
android:layout_width="fill_parent"
android:layout_height="720dp" />
</LinearLayout>
左右各有10到15 dp的空间。此外,线性布局不会拉伸到全屏。我想让它以宽度填充屏幕。
您可以使用显示矩阵获取屏幕的当前高度和宽度
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int h = displaymetrics.heightPixels;
int w = displaymetrics.widthPixels;
现在使用这个高度和宽度为您的视频视图:)以编程方式使用它而不是硬编码像720dp和所有。 getWidth()
和getHeight()
被谷歌弃用
实际上没有必要以编程方式设置宽度
android:layout_width="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
应该足以用全宽视频视图填充容器。并使用match_parent而不是fill_parent。希望这有助于某人。
获取布局的运行时高度和宽度,并在VideoView
中设置它
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
//videoview.setLayoutParams(new FrameLayout.LayoutParams(550,550));
videoview.setLayoutParams(new FrameLayout.LayoutParams(width,height));
//FrameLayout : write your layout name which you used
尝试在fill_parent
中使用android:layout_height
而不是使用特定的高度。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_gravity="fill_horizontal">
<VideoView
android:id="@+id/videoView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>