垂直居中按钮,同时限制高度

时间:2015-11-25 14:44:01

标签: android button relativelayout

左侧是按钮,右侧是ImageView。我希望按钮相对于视图垂直居中,但不要高于视图,​​例如,当前高度的1/4。

button and imageview

不幸的是,我知道如何在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)

1 个答案:

答案 0 :(得分:1)

你走了!

Result layout

<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>