2012-06-25 77 views
6

我有一个ImageViewTextView。我想将TextView放置在图像视图下方,但TextView的中间与ImageView(沿着水平轴)的中间对齐。如果TextView中的文字变为更大或更小的文字,文字的中间始终需要保持与ImageView的中间对齐。这可能在xmlAndroid:在一个元素下面和另一个中间对齐

+1

中间中间中间。 –

+1

我认为这被称为中间拼图! –

回答

6

是的,你只是希望包含在垂直LinearLayout具有android:gravity设置为center_horizontal两个元素。

像这样:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center_horizontal" 
    android:orientation="vertical" 
    ... > 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     ... /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     ... /> 

</LinearLayout> 

由于TextView的宽度是wrap_content,并设置其重力不应该是必要的。我会这样做只是为了安全(另外,我也可以将宽度设置为match_parent)。

+0

这是令人尴尬的,因为我已经在代码的另一个地方做到了这一点。不管怎么说,还是要谢谢你。 – AndroidDev

+0

那么,它适用于你的目的?如果是解决方案,请考虑将其标记为正确,以便其他人也可以找到它。 – Eric

+0

你不能马上标记。你必须等待几分钟。耐心。我几乎总是标记他们。 – AndroidDev

0

set TextViewandroid:layout_width="fill_parent" and set android:gravity="center" in TextView

我认为这对你有帮助。

感谢

0

您可以使用RealtiveLayout的如下..

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center_horizontal" 
    android:orientation="vertical" 
    ... > 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     ... /> 

    <TextView 
     android:layout_below="@+id/imageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     /> 

</RelativeLayout> 

如果你希望你的TextView是单行的只有以下属性添加到TextView的

机器人:ellipsezed =“结束” 机器人:单线=“真”

使用给定的布局,并把它添加到您的任何现有布局的你造成你想找..

希望这个解释对你有用..

相关问题