2012-12-28 157 views
2

我有一個ImageView(下面的屏幕截圖中的時鐘圖像),我想垂直居中時間戳文本(圖像中的「2小時前」),無論字體大小。在RelativeLayout中垂直TextView的中心ImageView

enter image description here

我試過android:layout_centerVertical="true"但它沒有任何效果。

我已經在下面包含了佈局代碼。將時鐘(id createdTimeImage)與RelativeLayout中的時間戳文本(id createdTime)垂直居中的正確方法是什麼?欣賞任何指向正確方向的指針。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 

<RelativeLayout 
    android:id="@+id/fromPictureSection" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/square_shape_grey_border" 
    android:padding="1dip" 
    android:layout_marginLeft="10dip" 
    android:layout_marginTop="10dip" > 

    <ImageView 
     android:id="@+id/fromPicture" 
     android:layout_width="50dip" 
     android:layout_height="50dip" 
     android:contentDescription="@null" /> 
</RelativeLayout> 

<TextView 
    android:id="@+id/fromName" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@id/fromPictureSection" 
    android:paddingLeft="5dip" 
    android:paddingRight="10dip" 
    android:paddingTop="12dip" 
    android:textAppearance="@style/bodyTextStyle" /> 

<ImageView 
    android:id="@+id/createdTimeImage" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/fromName" 
    android:layout_toRightOf="@id/fromPictureSection" 
    android:contentDescription="@null" 
    android:paddingBottom="0dip" 
    android:paddingLeft="5dip" 
    android:paddingTop="0dip" 
    android:layout_centerVertical="true" 
    android:src="@drawable/clock" /> 

<TextView 
    android:id="@+id/createdTime" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/fromName" 
    android:layout_toRightOf="@id/createdTimeImage" 
    android:layout_centerVertical="true" 
    android:paddingBottom="0dp" 
    android:paddingLeft="2dip" 
    android:paddingRight="10dip" 
    android:paddingTop="0dp" 
    android:textAppearance="@style/smallGreyTextStyle" /> 
</RelativeLayout> 

回答

2

可以初始化到textview本身

<TextView 
    android:id="@+id/createdTime" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/fromName" 
    android:layout_toRightOf="@id/createdTimeImage" 
    android:layout_centerVertical="true" 
    android:paddingBottom="0dp" 
    android:paddingLeft="2dip" 
    android:paddingRight="10dip" 
    android:paddingTop="0dp" 
    android:textAppearance="@style/smallGreyTextStyle" 
    android:drawableLeft="@drawable/clock" /> 
0

圖像您可以像這樣。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 

<RelativeLayout 
android:id="@+id/fromPictureSection" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:background="@drawable/ic_launcher" 
android:padding="1dip" 
android:layout_marginLeft="10dip" 
android:layout_marginTop="10dip" > 

<ImageView 
    android:id="@+id/fromPicture" 
    android:layout_width="50dip" 
    android:layout_height="50dip" 
    android:contentDescription="@null" /> 
</RelativeLayout> 

<TextView 
android:id="@+id/fromName" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_toRightOf="@id/fromPictureSection" 
android:textColor="@android:color/white" 
android:text="some meore text" 
android:paddingLeft="5dip" 
android:paddingRight="10dip" 
android:paddingTop="12dip" /> 
<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:layout_toRightOf="@id/fromPictureSection" 
android:layout_below="@id/fromName" 
android:layout_centerHorizontal="true"> 
<ImageView 
android:id="@+id/createdTimeImage" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:contentDescription="@null" 
android:paddingBottom="0dip" 
android:paddingLeft="5dip" 
android:paddingTop="0dip" 
android:layout_gravity="center" 
android:src="@drawable/ic_menu_camera" /> 

<TextView 
android:id="@+id/createdTime" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_gravity="center" 
android:textColor="@android:color/white" 
android:text="some text here" 
android:paddingBottom="0dp" 
android:paddingLeft="2dip" 
android:paddingRight="10dip" 
android:paddingTop="0dp" /> 

</LinearLayout> 

</RelativeLayout>