我正在尝试将线性布局内的视频视图拉伸到全屏,但应用程序不会将视频视图的宽度拉伸到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的空间。此外,线性布局不会拉伸到全屏。我想让它以宽度填充屏幕。
答案 0 :(得分:4)
您可以使用显示矩阵
获取屏幕的当前高度和宽度DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int h = displaymetrics.heightPixels;
int w = displaymetrics.widthPixels;
现在使用此高度和宽度进行视频观看:)
以编程方式使用它而不是像720dp那样硬编码。
Google弃用了getWidth()
和getHeight()
答案 1 :(得分:4)
实际上不需要以编程方式设置宽度
android:layout_width="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
应该足以用全宽视频视图填充容器。并使用match_parent而不是fill_parent。希望这有助于某人。
答案 2 :(得分:1)
获取布局的运行时高度和宽度,并在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
答案 3 :(得分:0)
尝试在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>