将屏幕分成 4 个相等的部分 - android

0 java xml android landscape

我希望我的 android 屏幕被分成 4 个相同大小的相等部分。它必须在横向模式下工作。这是我希望它看起来像的一个例子

mjp*_*p66 5

你可以只使用 LinearLayouts 和权重来做到这一点:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#ffffff"
    android:padding="10dp" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".5"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".5"
            android:orientation="vertical"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:background="#ff0000"/>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".5"
            android:orientation="vertical"
            android:layout_marginLeft="5dp"
            android:layout_marginBottom="5dp"
            android:background="#ff8000"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".5"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".5"
            android:orientation="vertical"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            android:background="#336699"/>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".5"
            android:orientation="vertical"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:background="#993366"/>

        </LinearLayout>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

更新:在块周围和块之间有 10dp 的“空白”。如果您还想对每个块应用圆角,就像在屏幕截图中一样,请查看 android 的 xml drawable。然后可以将这些应用于android:background而不是像我的示例中那样的纯色;)

更新 2:使用 xml drawable 创建圆角:

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners
        android:radius="10dp" />
    <solid
        android:color="#ff8000" />
</shape>
Run Code Online (Sandbox Code Playgroud)

将 xml drawable 保存到 drawable 目录,就像使用任何其他图像(png/jpg/etc)一样,并从您的视图中引用它,例如:

android:background="@drawable/your_xml_drawable_res"
Run Code Online (Sandbox Code Playgroud)

当然,如果您为所有 4 个方块应用与背景相同的资源,您将获得四个橙色 (#ff8000) 背景。您可以只创建上面的 xml drawable 的 4 个副本,并将android:color每个副本更改为唯一的阴影。

就是这样;)