Answers:
我假设您正在使用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"
与RelativeLayout结合使用时,该布局的高度和宽度均设置为wrap_content。
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重力设置为居中:
<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 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);
我们可以通过以下多种方式实现这一目标:
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重力按照您的父级布局工作。
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_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>