我的Android应用中有以下相对布局代码:
<RadioGroup
android:id="@+id/selectSound"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/micLevelLabel"
android:checkedButton="@+id/radiohighpitched"
android:layout_marginTop="71dp" >
<RadioButton
android:id="@+id/radiohighpitched"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="High Pitched"
android:textColor="@color/android:white"
/>
<RadioButton
android:id="@+id/radiofoghorn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fog Horn"
android:textColor="@color/android:white"
/>
<RadioButton
android:id="@+id/radioalarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Alert Tone"
android:textColor="@color/android:white" />
</RadioGroup>
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imageButton1"
android:layout_below="@+id/imageButton1"
android:onClick="playTone2"
android:src="@drawable/play_med" />
<ImageButton
android:id="@+id/imageButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imageButton2"
android:layout_below="@+id/imageButton2"
android:onClick="playTone3"
android:src="@drawable/play_med" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/selectSound"
android:layout_toRightOf="@+id/micLevelLabel"
android:onClick="playTone1"
android:src="@drawable/play_med" />
它产生一个如下所示的布局:
由于ImageButtons
的图像大小,恰好排列正确。我最近重新设计了应用,右侧的ImageButtons
不再与RadioButtons
对齐。
是否有更健壮的方法来构建此布局,以使ImageButtons
始终与相应的RadioButtons
对齐?
答案 0 :(得分:3)
如果不是强制性的,要使用ImageButton
,您可以采用这种方法。
我做的是:
只需对所有drawableight
使用RadioButton
,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RadioGroup
android:id="@+id/rgroup"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/rd1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableRight="@drawable/ic_launcher"
android:text="@string/high" />
<RadioButton
android:id="@+id/rd2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableRight="@drawable/ic_launcher"
android:text="@string/med" />
<RadioButton
android:id="@+id/rd3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableRight="@drawable/ic_launcher"
android:text="@string/low" />
</RadioGroup>
</LinearLayout>
输出:
对于他们的点击事件,您可以从this question
获得提示希望这有帮助。