0

我有这个布局:

<LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">


                <SurfaceView
                    android:id="@+id/Preview"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_marginBottom="20dp"
                    android:layout_marginLeft="20dp"
                    android:layout_marginRight="20dp" />


                <VideoView
                    android:id="@+id/videoView"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_marginBottom="20dp"
                    android:layout_marginLeft="20dp"
                    android:layout_marginRight="20dp"/>
            </LinearLayout>

SurfaceView 和 VideoView 应该平等地共享可用空间,如果我将 VideoView 放在首位,它们就会这样做。当我像上面那样做时,SurfaceView 会占用布局中的所有空间。如果不为宽度和高度提供特定的 dps,我怎么能防止这种情况发生?

4

3 回答 3

0

尝试使用“weightSum=2”。还要在两个视图中分割边距!

<LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:weightSum="2">


            <SurfaceView
                android:id="@+id/Preview"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginBottom="10dp"
                android:layout_weight="1"/>


            <VideoView
                android:id="@+id/videoView"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="20dp"
                android:layout_weight="1"/>
        </LinearLayout>
于 2012-10-05T15:47:28.727 回答
0

你们两个都Views在填充父属性,因为属性状态:android:layout_width=fill_parent

要平均划分屏幕,使您的两个视图彼此相邻,您可以使用权重:

        <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">


            <SurfaceView
                android:id="@+id/Preview"
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_marginBottom="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_weight="1" />


            <VideoView
                android:id="@+id/videoView"
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_marginBottom="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_weight="1" />
        </LinearLayout>
于 2012-10-05T14:51:21.940 回答
0

您必须添加 layout_weight=1

<LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">


                <SurfaceView
                    android:id="@+id/Preview"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_marginBottom="20dp"
                    android:layout_marginLeft="20dp"
                    android:layout_marginRight="20dp" 
                    android:layout_weight="1"/>


                <VideoView
                    android:id="@+id/videoView"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_marginBottom="20dp"
                    android:layout_marginLeft="20dp"
                    android:layout_marginRight="20dp"
                    android:layout_weight="1"/>
            </LinearLayout>
于 2012-10-05T14:52:12.733 回答