如何在TextView中水平和垂直居中文本,以便它正好出现在Android中的TextView的中间?


当前回答

There are 2 ways to do this :

1. From Xml
     use :  
        <TextView
         .........
        android:gravity="center"/>

2. From Java class
    use : 

     [textview].setGravity(Gravity.CENTER);

其他回答

字体填充也会影响文本的位置,您可以通过添加includefontpadding=false来删除它

<TextView
    android:includeFontPadding="false"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center" />
<TextView  
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="center"
android:text="In the center"/>

以上是使用.xml文件进行设置。

但我更喜欢java版本,因为如果需要,您也可以在运行状态下在代码中禁用它。下面是java代码。

textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
android:textAlignment="center"

这就行了

实际上,我们可以通过排除fontPadding做得更好。

<TextView
  android layout_height="wrap_content"
  android layout_height="wrap_content"
  android:includeFontPadding="false"
  android:textAlignment="center"
/>

您可以将重力设置为垂直居中,将文本对齐设置为居中。

<TextView
     android:text="@string/yourText"
     android layout_height="wrap_content"
     android layout_height="wrap_content"
     android:gravity="center_vertical"
     android:textAlignment="center" />