0

我将此作为布局的一部分

<RelativeLayout
    android:layout_weight="1"
    android:layout_height="match_parent"
    android:id="@+id/home_btn"
    style="@style/Home_Button">

    <TextView android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="@color/white"
        android:textStyle="bold"
        android:gravity="center"
        android:id="@+id/a"
        android:text="@string/centres"/>

    <ImageView android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_above="@id/a"
        android:src="@drawable/ic_home_btn"/>
</RelativeLayout>

我需要将 TextView 置于 RelativeLayout 的中心,并将 ImageView 置于 TextView 上方,并设置 dp 偏移量(例如图像和文本之间的 10dp 间隙)

我尝试了各种不同的方法,到目前为止没有任何效果。我怎样才能正确地让它工作?

哦,风格是这样的

<style name="Home_Button_NL">

    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_width">match_parent</item>
    <item name="android:background">@drawable/home_button</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:gravity">center</item>
    <item name="android:layout_marginTop">@dimen/padding_tiny</item>
</style>
4

4 回答 4

1

利用android:drawableLeft/Right/Top/Bottom将图像定位到 TextView。此外,您可以在 TextView 和可绘制对象之间使用一些填充android:drawablePadding=""

像这样使用它:

<TextView 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/white"
    android:textStyle="bold"
    android:gravity="center"

    android:drawableTop="@drawable/ic_home_btn"
    android:drawablePadding="10dp"

    android:id="@+id/a"
    android:text="@string/centres"/>

这样,您只需将一个 View 放置在 RelativeLayout 的中心。

请注意,您不能以这种方式缩放图像。我建议这样做,因为您的设置中没有缩放。

于 2013-10-09T16:00:03.650 回答
0

在您的 TextView 中使用android:center_horizontal = "true"alignParentBottom = "true"

于 2013-10-09T15:53:13.810 回答
0
<RelativeLayout
    android:layout_weight="1"
    android:layout_height="match_parent"
    android:id="@+id/home_btn"
    style="@style/Home_Button">

    <TextView android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="@color/white"
        android:textStyle="bold"
        android:gravity="center"
        android:id="@+id/a"
        android:text="@string/centres"
        android:centerInParent="true"   // center the textview in it's parent
     "/>

    <ImageView android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_above="@id/a"
        android:src="@drawable/ic_home_btn"
        android:layout_centerHorizontal="true" // center imageview horizontally
        android:layout_marginTop="YOUR MARGIN HERE"
     />
</RelativeLayout>

这可能会有所帮助!

于 2013-10-09T15:54:44.937 回答
0

你有没有尝试过:

android:paddingBottom="10dp"
于 2013-10-09T15:56:40.223 回答