В настоящее время у меня есть код, который позволяет мне разделить экран на четыре равные части с кнопкой изображения в каждой части. Тем не менее, код использует линейные макеты, которые вызывают предположение, что «вложенные веса плохи для производительности». Как я могу сделать свой макет с использованием относительных макетов? Ниже приведен код, а вот изображение предполагаемого формата
Разделите экран на четыре равные части с использованием относительной компоновки
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0"
android:orientation="horizontal"
android:background="#ff191919">
<ToggleButton
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff414141"
android:layout_weight="1.0"
android:text="Plane"
android:layout_margin="5dp"
android:textSize="20sp"
android:onClick="airplaneClicked"/>
<ImageButton
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff414141"
android:layout_weight="1.0"
android:layout_margin="5dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_brightness"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0"
android:orientation="horizontal"
android:background="#ff191919">01
<ImageButton
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff414141"
android:layout_weight="1.0"
android:layout_margin="5dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_sound" />
<ImageButton
android:id="@+id/settingsbutton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff414141"
android:layout_weight="1.0"
android:layout_margin="5dp"
android:scaleType="fitCenter"
android:src="@drawable/settings2"/>
</LinearLayout>
</LinearLayout>
"Как я могу сделать мой макет, используя относительные макеты?" - AFAIK, вы не можете. Либо используйте подход «LinearLayout», либо создайте собственную пользовательскую «ViewGroup», которая реализует то, что вы ищете. – CommonsWare
Не приведет ли линейная раскладка к худшей производительности? – throwaway123
«Хуже работы» по сравнению с чем? Вероятно, это будет хуже, чем хорошо написанная пользовательская 'ViewGroup'. Однако писать такую «ViewGroup» не особенно часто. – CommonsWare