Android全宽视频视图

时间:2013-03-18 06:53:00

标签: android layout video

我正在尝试将线性布局内的视频视图拉伸到全屏,但应用程序不会将视频视图的宽度拉伸到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的空间。此外,线性布局不会拉伸到全屏。我想让它以宽度填充屏幕。

4 个答案:

答案 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>