前言
最近写花卉识别系统的安卓部分,遇到了一些问题。
如何把两个按钮水平分开,是我当初比较头疼的问题,后来就简单设计了一下,就去写功能部分的代码了,回过头来实验一下却出了问题。
原码
我整个页面的设计是一个线性布局,上面摆一个ImageView控件,下面放两个按钮。
原来对两个按钮的设计是一个相对布局。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:id="@+id/camera_btn"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerVertical="true"
android:layout_marginStart="70dp"
android:background="@drawable/xiangji"
/>
<Button
android:id="@+id/album_btn"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginStart="105dp"
android:layout_centerVertical="true"
android:layout_toEndOf="@id/camera_btn"
android:background="@drawable/xiangce"/>
</RelativeLayout>
在预览图中看着还可以

整体是一个这样的设计:

后来我感觉这个设计糟透了,自己设计距离肯定会出问题。
手机测试中两个按钮全偏了
修改
考虑后,把原来的相对布局换为了水平布局LinearLayout,orientation属性设置为horizontal水平摆放,然后在里面添加两个相对布局RelativeLayout,最后把两个按钮分别放置在相对布局的中心就可以了。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="10dp"
android:layout_weight="2"
android:orientation="horizontal"
android:baselineAligned="false">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:layout_margin="10dp"
android:orientation="horizontal">
<Button
android:id="@+id/camera_btn"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerInParent="true"
android:background="@drawable/xiangji"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:layout_margin="10dp"
android:orientation="horizontal"
>
<Button
android:id="@+id/album_btn"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginStart="10dp"
android:layout_centerInParent="true"
android:background="@drawable/xiangce" />
</RelativeLayout>
</LinearLayout>
整体的设计就变成了这样:
