我希望我在android中的屏幕分为4个相同大小的相等部分。它必须在横向模式下工作。This is an example of how i want it to look like
答案 0 :(得分:4)
你可以使用除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>
更新:,10dp&#34;空白&#34;在街区之间和之间。如果您还想在每个块中应用圆角,就像在屏幕截图中一样,请查看android的xml drawables。然后可以将这些应用于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>
将xml drawable保存到drawable目录,就像使用任何其他图像(png / jpg / etc)一样,并从您的视图中引用它,例如:
android:background="@drawable/your_xml_drawable_res"
当然,如果您为所有4个方格应用相同的资源作为背景,那么您将获得四个橙色(#ff8000)背景。您可以在上面创建4个xml drawable副本,并将每个副本中的android:color
更改为唯一的阴影。
关于它的问题;)
答案 1 :(得分:2)
除了mjp66 answer之外,我可以说使用支持库中的GridLayout可以更好地完成此布局。在这种情况下,您不需要处理多列中的更改,如果有的话。
您的代码如下所示:
<android.support.v7.widget.GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:rowCount="2"
app:columnCount="2">
<View
android:id="@+id/top_left"
app:layout_gravity="fill_horizontal"
app:layout_columnWeight="1"
app:layout_rowWeight="1"/>
<View
android:id="@+id/top_right"
app:layout_gravity="fill_horizontal"
app:layout_columnWeight="1"
app:layout_rowWeight="1"/>
<View
android:id="@+id/bottom_left"
app:layout_gravity="fill_horizontal"
app:layout_columnWeight="1"
app:layout_rowWeight="1"/>
<View
android:id="@+id/bottom_right"
app:layout_gravity="fill_horizontal"
app:layout_columnWeight="1"
app:layout_rowWeight="1"/>
</android.support.v7.widget.GridLayout>
因此,您不需要照顾宽度/高度,布局将自动执行。
答案 2 :(得分:-1)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<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:background="#ff0000"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".5"
android:orientation="vertical"
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:background="#336699"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".5"
android:orientation="vertical"
android:background="#993366"/>
</LinearLayout>