如何定位图像使其底部与布局的垂直中心重合?

时间:2014-06-25 18:58:48

标签: android xml android-layout android-imageview

我尝试通过ImageView将图像添加到布局,并将ImageView的布局重力设置为center_vertical。但是这会将图像的中心放置在布局的垂直中心。相反,我希望图像的底部位于布局的垂直中心。这可能吗?

谢谢大家再次帮忙!!

3 个答案:

答案 0 :(得分:0)

假设您正在使用RelativeLayout,您可以做的是创建1dp by 1dp View(让我们称之为spacer_view)并将其垂直居中于父级。

然后你可以拍摄你的ImageView和" align_bottom"使用spacer_view。

<View
   android:id="@+id/spacer_view"
   android:layout_width="1dp"
   android:layout_height="1dp"
   android:layout_centerVertical="true"
   android:layout_centerHorizontal="true" />

<ImageView
   android:id="@+id/my_image"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignBottom="@+id/spacer_view" />

答案 1 :(得分:0)

Tajonny07给出的答案将是我认为最好和最简单的方法。 但是,如您所建议的那样,无法使用FrameLayout完成此操作。这是因为android:layout_centerHorizontalandroid:layout_centerVertical是FrameLayout中的无效参数。 RelativeLayout在大多数情况下都能很好地完成工作,具体取决于您所做的工作。是FrameLayout  你正在申请的是什么?

答案 2 :(得分:0)

请尝试这种方式,希望这有助于您解决问题。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="bottom|center_horizontal">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/ic_launcher"/>

        </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

    </LinearLayout>

</LinearLayout>