我有一个水平线性布局。有4个图像按钮。我想将这些均匀分布在屏幕宽度上。
通常我会通过将图标的布局宽度设置为0dp,权重设置为1.然后我将线性布局的总和设置为4,如下所示。
然而,当我这样做时,它会拉伸按钮。
如何在没有图标拉伸的情况下均匀分布它们,而无需使用相对布局和设置边距?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="4">
<ImageButton
android:id="@+id/mainAlarmButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_alarm_white_18dp"/>
<ImageButton
android:id="@+id/addAlarmButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/ic_add_white_18dp"/>
<ImageButton
android:id="@+id/shareButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/ic_share_white_18dp"/>
<ImageButton
android:id="@+id/settingsButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/ic_tune_white_18dp"/>
</LinearLayout>
感谢您的帮助
答案 0 :(得分:1)
在ImageButtons之间使用虚拟视图
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="5"
xmlns:android="http://schemas.android.com/apk/res/android">
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:id="@+id/mainAlarmButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_alarm_white_18dp"/>
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:id="@+id/addAlarmButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_add_white_18dp"/>
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:id="@+id/shareButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_share_white_18dp"/>
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageButton
android:id="@+id/settingsButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_tune_white_18dp"/>
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
答案 1 :(得分:1)
我建议您使用ImageView
代替ImageButton
,然后使用android:background
代替android:src
。然后使用正确的android:scaleType
,您就可以实现自己想要的目标。