텍스트 뷰에서 텍스트를 가로 및 수직으로 중앙으로 중앙을 중앙으로 중심합니까?

StackOverflow https://stackoverflow.com/questions/432037

  •  08-07-2019
  •  | 
  •  

문제

텍스트를 수평 및 수직으로 중앙을 중심으로 TextView, 그것이 정확히 중간에 나타나도록 TextView 안에 Android?

도움이 되었습니까?

해결책

XML 레이아웃을 사용하고 있다고 가정합니다.

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

중력을 사용할 수도 있습니다 center_vertical 또는 center_horizontal 당신의 필요에 따라.

그리고 @StealthCopter가 Java에서 언급했듯이 : .setGravity(Gravity.CENTER);

다른 팁

android:gravity="center" 

이것은 트릭을 할 것입니다

다음을 사용하여 동적으로 설정할 수도 있습니다.

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
android:layout_centerInParent="true"

이것은 레이아웃 높이와 너비가 랩 폰텐트로 설정되는 RelativeLayout과 함께 사용될 때 작동합니다.

조합을 사용할 수도 있습니다.

android:gravity="left|center"

그런 다음 TextView 너비가 "Fill_Parent"이상인 경우 텍스트는 여전히 왼쪽에 정렬됩니다 (중력은 중력으로 만 "중심"으로 설정되지 않음).

중력 적용 :

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

TableLayout을 사용하는 경우 타블러의 중력을 중앙으로 설정하십시오. 그렇지 않으면 작동하지 않습니다. 적어도 타블러의 중력을 중앙으로 설정하기 전까지는 나와 함께 작동하지 않았습니다.

예를 들어 : 다음과 같이

<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center">        
    <TextView android:text="@string/chf" android:id="@+id/tv_chf" android:layout_weight="2" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center"></TextView>        
</TableRow>

이 작업을 수행하는 두 가지 방법이 있습니다.

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

그래픽 편집기에서 가능한 모든 값을 찾을 수 있으며 결과를 볼 수도 있습니다.

설정해야합니다 TextView 중력 (중앙 수평 및 센터 수직) : 다음과 같은 :

android:layout_centerHorizontal="true"   

그리고

android:layout_centerVertical="true"

동적으로 사용 :

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

제 생각에는

android:gravity="center"

보다 낫다,

android:layout_centerInParent="true"

어느 것보다 낫고

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"

적어도 텍스트 서식의 경우.

선형 레이아웃의 경우 : XML에서 다음과 같은 것을 사용하십시오.

<TextView  
    android:id="@+id/textView1"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_vertical|center_horizontal"
    android:text="Your Text goes here"
/>

실행 시간에 이것을하려면 활동에서 이와 같은 것을 사용하십시오.

TextView textView1 =(TextView)findViewById(R.id.texView1);
textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

상대 레이아웃의 경우 : XML에서 이와 같은 것을 사용하십시오.

<TextView  
    android:id="@+id/textView1"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_centerInParent="true"
    android:text="Your Text goes here"
/>

실행 시간에 이것을하려면 활동에서 이와 같은 것을 사용하십시오.

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);

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);

상대 레이아웃에 이것을 사용하십시오

android:layout_centerInParent="true"

그리고 다른 레이아웃의 경우

android:gravity="center" 

TextView에는 Gravity Works를 사용하는 동안 API 레벨 17에서 구현 된 대체 방법이 있습니다.

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

차이점을 모르지만 작동합니다. 그러나 API 레벨 17 이상의 경우에만.

만약 TextView's 높이와 너비는입니다 wrap content 그런 다음 내 텍스트 TextView 항상 중앙에 있습니다. 그러나 만약 TextView's 너비는 match_parent 그리고 높이입니다 match_parent 또는 wrap_content 그런 다음 아래 코드를 작성해야합니다.

을 위한 RelativeLayout :

<?xml version="1.0" encoding="utf-8"?>
<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 :

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

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

</LinearLayout>

~ 안에 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>

가장 쉬운 방법 (놀랍게도 의견에만 언급되어 있으므로 답으로 게시하는 이유)은 다음과 같습니다.

textview.setGravity(Gravity.CENTER)

당신은 그냥 설정할 수 있습니다 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>

다음은 제 앱에서 사용한 대답입니다. 화면 중앙에 텍스트가 표시됩니다.

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

많은 대답이 위의 대답이 잘 작동합니다.

android:gravity="center"

당신이 그것을 수직으로 중심으로하고 싶다면 :

android:gravity="center_vertical"

또는 수평으로 :

android:gravity="center_horizontal"

간단히, XML 파일에서 TextView 중력을 중앙으로 설정하십시오.

<TextView
    android:gravity="center" />

텍스트를 중심으로하기 위해 이것을 좋아할 수 있습니다

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

우리는 다음과 같은 여러 가지 방법으로 이것을 달성 할 수 있습니다.-

XML 방법 01

<TextView  
    android:id="@+id/textView"
    android:layout_height="match_parent"
    android:layout_width="wrap_content" 
    android:gravity="center_vertical|center_horizontal"
    android:text="@strings/text"
/>

XML 방법 02

<TextView  
    android:id="@+id/textView"
    android:layout_height="match_parent"
    android:layout_width="wrap_content" 
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="@strings/text"
/>

XML 방법 03

<TextView  
    android:id="@+id/textView"
    android:layout_height="match_parent"
    android:layout_width="wrap_content" 
    android:gravity="center"
    android:text="@strings/text"
/>

XML 방법 04

<TextView  
    android:id="@+id/textView"
    android:layout_height="match_parent"
    android:layout_width="wrap_content" 
    android:layout_centerInParent="true"
    android:text="@strings/text"
/>

Java 방법 01

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

Java 방법 02

textview.setGravity(Gravity.CENTER);

Java 방법 03

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

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>

그리고 Pro-Grammically Parent는 runive 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 Gravity는 부모 레이아웃에 따라 작동합니다.

LinearLayout:

LinearLayout을 사용하면 두 가지 중력 속성 Android : Gravity & Android : Layout_gravity가 있습니다.

Android : 중력 : 텍스트 뷰의 내부 텍스트의 레이아웃 물약을 나타내며 Android : layout_gravity : 부모보기에서 TextView 위치를 나타냅니다.

enter image description here

텍스트를 가로 및 수직 센터로 설정하려면 아래 코드를 사용하십시오.

<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_horizontal"내부 텍스트가 수평 중심을 원한다면.

Android : Gravity = "Center_vertical"내부 텍스트를 수직 중심을 원할 경우.

Android : layout_centerinparent = "true"부모보기의 중앙 위치에서 텍스트 뷰를 원한다면. Android : layout_centerhorizontal = "true"부모보기의 수평 중심에서 텍스트 뷰를 원한다면. Android : layout_centervertical = "true"수직 부모보기 중심에서 텍스트 뷰를 원한다면.

<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="center_horizontal" 텍스트 센터를 수평으로 정렬합니다.android:gravity="center_vertical" 텍스트 센터를 수직으로 정렬합니다.android:gravity="center" 수직 및 수평으로 텍스트 센터를 정렬합니다.

<TextView
        android:layout_width="match_parent"
        android:gravity="center_horizontal|center_vertical"
        android:layout_height="match_parent" />

이 방법으로 시도하면 작동합니다

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center_horizontal|center_vertical">

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

</LinearLayout>

XML의 아래 코드를 사용하여 저를 위해 작동했습니다. 중앙에있는 방향을 변경할 수 있습니다.

<LinearLayout
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:background="@color/colorPrimaryDark"
        android:gravity="center"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/id_text"
            android:layout_width="wrap_content"
            android:textSize="18sp"
            android:textColor="@android:color/white"
            android:textStyle="normal"
            android:layout_height="wrap_content"
            android:text="centre me"/>
    </LinearLayout>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top