에서 텍스트를 가로 및 세로 TextView
가운데에 배치하여 TextView
에서 가운데에 정확히 표시되도록 하려면 어떻게해야 Android
합니까?
에서 텍스트를 가로 및 세로 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"
). 여전히 화면의 가장 왼쪽에 표시됩니다. :(
android:layout_gravity="center"
하지 말고 다른 것을하십시오.
android:gravity="center"
이 트릭을 할 것입니다
다음을 사용하여 동적으로 설정할 수도 있습니다.
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
android:layout_centerInParent="true"
이것은 레이아웃의 높이와 너비가 wrap_content로 설정된 RelativeLayout과 함께 사용될 때 작동합니다.
TextView
. 텍스트는 전체 너비 및 여러 줄로되어 있으며에서 왼쪽으로 정렬됩니다 TextView
. 디스플레이에 왼쪽 정렬로 나타납니다. 다른 답변에 지정된대로 "중력"을 사용해야합니다.
중력을 적용하십시오 :
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
속성에 주의를 기울여야합니다 . 그래픽 편집기에서이 속성을 찾을 수도 있습니다. XML EDITOR보다 쉬울 수 있습니다.
<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의 중력을 중앙으로 설정하기 전까지는 나와 함께 작동하지 않았습니다.
예를 들면 다음과 같습니다.
<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);
layout_centerhorizontal
및 layout_centervertical
의해 layout_centerHorizontal
및 layout_centerVertical
(그렇지 못해 작업을 "H"및 "V"자로).
선형 레이아웃의 경우 : 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
아래 코드를 작성해야합니다.
들어 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>
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>
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: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
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"/>
간단히 XML 파일에서 텍스트 뷰 중력을 가운데로 설정하십시오.
<TextView
android:gravity="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>
그리고 문법적으로 부모는 RelativeLayout 자바 코드입니다. 런타임 시이 활동에서 이와 같은 것을 사용하십시오.
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 방법 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"
/>
자바 방법 01
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
자바 방법 02
textview.setGravity(Gravity.CENTER);
자바 방법 03
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
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을 사용하면 TextView에서 아래 속성을 사용할 수 있습니다
TextView의 텍스트 센터에 대한 android : gravity = "center"
가로로 중앙에 배치하려는 경우 android : gravity = "center_horizontal"내부 텍스트입니다.
세로로 중앙에 배치하려는 경우 android : gravity = "center_vertical"내부 텍스트입니다.
android : layout_centerInParent = "true"부모보기의 중앙 위치에 TextView를 원하는 경우 android : layout_centerHorizontal = "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>
이 방법으로 시도하면 작동합니다.
<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>