左侧是按钮,右侧是ImageView。我希望按钮相对于视图垂直居中,但不要高于视图,例如,当前高度的1/4。
不幸的是,我知道如何在RelativeLayout中垂直居中的唯一方法是使用layout_alignTop / Bottom到视图,这会拉伸按钮。我怎么能避免这个? XML:
<RelativeLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/cameraButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/camera"
android:layout_alignBottom="@+id/camera"
android:gravity="center"
android:text="Tap to Take Picture"
android:textSize="10sp" />
<ImageView
android:id="@+id/camera"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_toEndOf="@+id/cameraButton"
android:layout_toRightOf="@+id/cameraButton"
android:contentDescription="camera photo" />
</RelativeLayout>
(旁边的问题:有没有办法让视图的高度与宽度相同而不需要硬编码200dp?我想它可以以编程方式完成,但更喜欢XML)
答案 0 :(得分:1)
你走了!
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/cameraButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Tap to Take Picture"
android:textSize="10sp" />
<ImageView
android:id="@+id/camera"
android:layout_width="match_parent"
android:layout_height="200dp"
android:contentDescription="camera photo" />
</LinearLayout>