programing

텍스트 보기에서 텍스트를 가로 및 세로로 중앙에 배치하려면 어떻게 해야 합니까?

megabox 2023. 6. 3. 08:22
반응형

텍스트 보기에서 텍스트를 가로 및 세로로 중앙에 배치하려면 어떻게 해야 합니까?

텍스트를 가로 및 세로로 중앙에 배치하려면 어떻게 해야 합니까?TextView정확히 중간에 나타날 수 있도록.TextViewAndroid?

XML 레이아웃을 사용하는 것으로 가정합니다.

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

중력을 .center_vertical또는center_horizontal필요에 따라

@자바: @stealcopter는 과 같습니다..setGravity(Gravity.CENTER);.

그리고 코틀린 사용자들을 위해,.gravity = Gravity.CENTER

android:gravity="center" 

이 정도면 효과가 있을 겁니다.

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

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

이것은 레이아웃의 높이와 너비가 wrap_content로 설정된 상대 레이아웃과 함께 사용할 때 작동합니다.

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

android:gravity="left|center"

그런 다음 텍스트 뷰 너비가 "fill_parent"보다 큰 경우 텍스트는 여전히 왼쪽으로 정렬됩니다(중력이 "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 코드의 첫 번째입니다.당신은 주의를 기울일 필요가 있습니다.Gravity은 Graphic Editor( 편집기에서도 찾을 수 . EditorXML 편집기)보다.이 속성은 그래픽 편집기에서도 찾을 수 있습니다. 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

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

TableLayout을 사용하는 경우 TableRows의 중력도 가운데로 설정해야 합니다.그렇지 않으면 작동하지 않습니다.적어도 제가 테이블 행의 무게를 중심에 맞추기 전까지는 작동하지 않았습니다.

예를 들어, 다음과 같습니다.

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

TextView Gravity(중심 수평 및 중심 수직)를 다음과 같이 설정해야 합니다.

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's는 높와너비는이입니다.wrap content에 다에안있텍스트는에그 텍스트입니다.TextView항상 중심에 있습니다.하지만 만약에TextView's는 폭입니다.match_parent 키는 그고키는리입니다.match_parent또는wrap_content를 작성해야 : 그런다아코작드성합니야다해를래음:.

상대 레이아웃의 경우:

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

선형 레이아웃의 경우:

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

TextView에 중력을 사용하는 동안 API 레벨 17에서 구현된 대체 방법이 있습니다 -

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

차이는 모르겠지만, 효과도 있습니다.단, API 레벨 17 이상일 경우에만 해당됩니다.

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>

사용하다android:textAlignment="center"

       <TextView
        android:text="HOW WAS\nYOUR\nDAY?"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAlignment="center"
        android:id="@+id/textView5"
         />

가장 쉬운 방법은 다음과 같습니다(놀랍게도 댓글에만 언급되어 있기 때문에 제가 답변으로 글을 올리는 이유는 다음과 같습니다.

textview.setGravity(Gravity.CENTER)

설정할 수 있습니다.gravity텍스트 보기의CENTER.

텍스트 보기 중력은 부모 레이아웃에 따라 작동합니다.

선형 레이아웃:

선형 레이아웃을 사용하면 두 개의 중력 속성 안드로이드를 찾을 수 있습니다: 중력 & 안드로이드: 레이아웃_중력

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>

상대 레이아웃:

상대 레이아웃을 사용하면 텍스트 보기에서 아래 속성을 사용할 수 있습니다.

Android: TextView의 텍스트 센터를 위한 gravity="center".

Android: gravity="center_수평" 내부 텍스트(수평 중심).

Android: gravity="center_interval" 내부 텍스트(수직으로 중심을 맞춥니다.

부모 보기의 중앙 위치에 TextView를 원하는 경우 안드로이드:layout_centerInParent="true", 부모 보기의 수평 중앙에 TextView를 원하는 경우 안드로이드:layout_centerHorizontal="true", 부모 보기의 수직 중앙에 TextView를 원하는 경우 안드로이드: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>

표 레이아웃의 표 행에 텍스트를 중앙에 배치하려는 경우 다음과 같이 수행할 수 있습니다.

<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:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/stringname"
    android:layout_centerInParent="true"/>

선형 레이아웃을 사용하는 경우

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

이런 식으로 해보세요, 효과가 있을 거예요.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center">
  
        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAlignment="center"/>

</LinearLayout>

여기 제 앱에서 사용했던 제 답변이 있습니다.화면 중앙에 텍스트가 표시됩니다.

<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의 높이와 너비는 내용을 래핑한 다음 텍스트 뷰 내의 텍스트를 항상 가운데에 배치한 다음 다음을 사용하여 부모 레이아웃의 가운데를 만듭니다.

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

그리고 프로그래밍 방식으로 부모는 상대 레이아웃 자바 코드입니다. 런타임에 이와 같은 것을 당신의 활동에 사용하세요.

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 layout_height="wrap_content"
  android layout_height="wrap_content"
  android:includeFontPadding="false"
  android:textAlignment="center"
/>

위의 많은 답변이 시사하는 바와 같이 작동합니다.

android:gravity="center"

수직으로 중심을 잡고자 하는 경우:

android:gravity="center_vertical"

또는 그냥 수평으로:

android:gravity="center_horizontal"

XML 파일에서 텍스트 보기 중력을 가운데로 설정합니다.

<TextView
    android:gravity="center" />

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

이렇게 하면 텍스트 중심을 잡을 수 있습니다.

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

언급URL : https://stackoverflow.com/questions/432037/how-do-i-center-text-horizontally-and-vertically-in-a-textview

반응형