textview靠右 - android textview靠左




如何在TextView中水平和垂直居中文本? (20)

TextView的高度和寬度都是換行內容,然後textview中的文本總是居中,然後使用以下命令在其父佈局中居中:

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Hello.."/>
</RelativeLayout>

對於LinearLayout,代碼也是相同的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello.."/>
</LinearLayout>

並且在運行時親代語法parent是RelativeLayout java代碼,在您的活動中使用類似這樣的內容

TextView textView1 =(TextView)findViewById(R.id.texView1);
RelativeLayout.LayoutParams layoutParams = RelativeLayout.LayoutParams)textView1.getLayoutParams();
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
textView1.setLayoutParams(layoutParams);

如何在TextView中將文本在水平和垂直方向居中放置,以便它完全出現在Android中的TextView中間?


TextView重力按照您的父級佈局運行。

LinearLayout

如果你使用LinearLayout,那麼你會發現兩個重力屬性android:gravity&android:layout_gravity

android:gravity:表示TextView內部文本的佈局部分,而android:layout_gravity:表示TextView在父視圖中的位置。

如果你想設置文本水平和垂直中心,然後使用下面的代碼這個

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="300dp"
    android:background="@android:color/background_light"
    android:layout_height="300dp">

    <TextView
        android:layout_width="match_parent"
        android:text="Hello World!"
        android:gravity="center_horizontal"
        android:layout_gravity="center_vertical"
        android:layout_height="wrap_content"
    />
</LinearLayout>

RelativeLayout

使用RelativeLayout可以在TextView中使用下面的屬性

android:gravity =“center”用於TextView中的文本中心。

如果你想水平居中,android:gravity =“center_horizo​​ntal”內部文本。

如果你想垂直居中,android:gravity =“center_vertical”內部文本。

android:layout_centerInParent =“true”,如果你想TextView在父視圖的中心位置。 android:layout_centerHorizo​​ntal =“true”,如果你想讓TextView在父視圖的水平中心。 android:layout_centerVertical =“true”,如果你想讓TextView在父視圖的垂直中心。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="300dp"
    android:background="@android:color/background_light"
    android:layout_height="300dp">

    <TextView
        android:layout_width="match_parent"
        android:text="Hello World!"
        android:gravity="center"
        android:layout_centerInParent="true"
        android:layout_height="wrap_content"
    />
</RelativeLayout>

你也可以使用這個組合:

android:gravity="left|center"

然後,如果textview的寬度大於“fill_parent”,則文本仍然會左對齊(不像居中引力只設置為“居中”)。


你可以這樣做,以獲得文本為中心

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

RelativeLayout ,它會很好用。

另一個Button和其他任何你可以添加的。

以下對我很好。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ff314859"
    android:paddingLeft="16dp"
    android:paddingRight="16dp">
    <TextView 
        android:id="@+id/txt_logo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="your text here"
        android:textSize="30dp"
        android:gravity="center"/>

        ...other button or anything else...

</RelativeLayout>

在XML文件中使用。

佈局文件

<TextView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:text="@string/stringtext"/>

要么:

在Java類中使用它

TextView textView =(TextView)findViewById(R.id.texviewid);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

如果TextView's高度和寬度都是wrap content那麼TextView的文本總是居中。 但是,如果TextView's寬度是match_parent ,高度是match_parentwrap_content那麼你必須寫下面的代碼:

對於RelativeLayout:

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

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center" 
        android:text="Hello World" />

</RelativeLayout>

對於LinearLayout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Hello World" />

</LinearLayout>

如果您使用相對佈局:

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/stringname"
    android:layout_centerInParent="true"/>

如果您正在使用LinearLayout

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/stringname"
    android:layout_gravity="center"/>

如果您試圖在TableLayout的TableRow中居中文本,則我是這樣實現的:

<TableRow android:id="@+id/rowName"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:padding="5dip" >
    <TextView android:id="@+id/lblSomeLabel"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:gravity="center"
              android:layout_width="0dp"
              android:layout_weight="100"
              android:text="Your Text Here" />
</TableRow>

將其用於相對佈局

android:layout_centerInParent="true"

和其他佈局

android:gravity="center" 

您也可以使用以下方式動態設置它:

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

您可以將文本視圖的gravity設置為CENTER


應用重力:

TextView txtView = (TextView) findViewById(R.id.txtView);
txtView.setGravity(Gravity.CENTER_HORIZONTAL);

垂直方向:

txtView.setGravity(Gravity.CENTER_VERTICAL);

在XML中:

<TextView      
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center"
    android:text="@string/Hello_World"        
/>

我假設你正在使用XML佈局。

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"
    android:text="@string/**yourtextstring**"
/>

和@stealthcopter在java中評論: .setGravity(Gravity.CENTER);


最簡單的方式(這是令人驚訝的僅在評論中提到,因此我發佈為答案)是:

textview.setGravity(Gravity.CENTER)

有兩種方法可以做到這一點。

XML代碼中的第一個。 您需要注意Gravity屬性。 您還可以在圖形編輯器中找到該屬性; 它可能比XML編輯器更容易。

<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_vertical|center_horizontal"
    android:text="Your Text"
/>

對於您的具體情況,重力值將為:

center_vertical|center_horizontal

在圖形編輯器中,您可以找到所有可能的值,甚至可以看到它們的結果。


許多答案表明上述工作正常。

android:gravity="center"

如果你只想垂直居中,

android:gravity="center_vertical"

或者只是水平地:

android:gravity="center_horizontal"

這是我在我的應用程序中使用的答案。 它顯示屏幕中心的文字。

<TextView
    android:id="@+id/txtSubject"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/subject"
    android:layout_margin="10dp"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
android:id="[email protected]/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
/>

android:gravity="center" 

這將做到這一點





textview