2013-10-09 120 views
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> 

我需要在RelativeLayout的为中心的TextView的,并且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> 

回答

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

这样,你只需要在RelativeLayout的中心来定位一个视图。

请注意,您无法以此方式缩放图像。我建议这是因为您的设置中没有缩放比例。

0

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

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> 

这可以帮助!

+0

我其实已经尝试过,我认为它可以工作,但它将两个元素居中,所以在图像上方有相同的距离,因为在文本下面有 –

+0

好的,请检查我的编辑。 –

0

你试过:

android:paddingBottom="10dp"