The solution is to enclose the harsh LinearLayouts. Usa has one vertical LinearLayout as a container and a stack of horizontal LinerarLayouts on it. Each horizontal with weight:
android:layout_weight="0.5"
You should also set the width and height as follows:
android:layout_width="match_parent" android:layout_height="match_parent"
Finally, you fill out these horizontal layouts with widgets (like buttons) and give them weight.
The source might look like the following snippet:
<?xml version="1.0" encoding="utf-8"?> <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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" android:background="@drawable/bg" tools:context=".MainActivity"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_weight="0.5" android:layout_height="match_parent"> <Button android:background="@color/colorPrimary" android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="fill_parent" android:text="100%" android:textSize="60dp"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_weight="0.5" android:layout_height="match_parent"> <Button android:background="@color/colorPrimary" android:layout_width="fill_parent" android:layout_weight="0.5" android:layout_height="fill_parent" android:text="50%" android:textSize="60dp"/> <Button android:background="@color/colorPrimaryDark" android:layout_width="fill_parent" android:layout_weight="0.5" android:layout_height="fill_parent" android:textSize="60dp" android:text="50%"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_weight="0.5" android:layout_height="match_parent"> <Button android:background="@color/colorPrimary" android:layout_width="fill_parent" android:layout_weight="0.7" android:layout_height="fill_parent" android:text="30%" android:textSize="60dp"/> <Button android:background="@color/colorPrimaryDark" android:layout_width="fill_parent" android:layout_weight="0.3" android:layout_height="fill_parent" android:allowUndo="false" android:text="70%" android:textSize="60dp"/> </LinearLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="20dp"> </RelativeLayout> </LinearLayout> </LinearLayout>
To get this as a result:

source share