pup*_*eno 1932 android textview
如何水平和垂直居中文本的TextView,所以,它正好出现在中间TextView的Android?
小智 2960
我假设你正在使用XML布局.
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/**yourtextstring**"
/>
Run Code Online (Sandbox Code Playgroud)
您也可以使用重力center_vertical或center_horizontal根据您的需要.
并且正如@stealthcopter在java中评论过: .setGravity(Gravity.CENTER);
小智 433
android:gravity="center"
Run Code Online (Sandbox Code Playgroud)
这样就可以了
小智 289
您还可以使用以下命令动态设置它:
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Run Code Online (Sandbox Code Playgroud)
小智 112
android:layout_centerInParent="true"
Run Code Online (Sandbox Code Playgroud)
当与RelativeLayout一起使用时,这适用于布局的高度和宽度设置为wrap_content.
Szo*_*tki 78
您也可以使用组合:
android:gravity="left|center"
Run Code Online (Sandbox Code Playgroud)
然后,如果textview宽度大于"fill_parent",则文本仍然会对齐到左边(不是居中,重力设置只是"center").
Gag*_*ngh 53
应用重力:
TextView txtView = (TextView) findViewById(R.id.txtView);
txtView.setGravity(Gravity.CENTER_HORIZONTAL);
Run Code Online (Sandbox Code Playgroud)
对于垂直:
txtView.setGravity(Gravity.CENTER_VERTICAL);
Run Code Online (Sandbox Code Playgroud)
在XML中:
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="@string/Hello_World"
/>
Run Code Online (Sandbox Code Playgroud)
Cri*_*rra 40
有两种方法可以做到这一点.
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"
/>
Run Code Online (Sandbox Code Playgroud)
对于您的特定场景,重力值将是:
center_vertical|center_horizontal
Run Code Online (Sandbox Code Playgroud)
在图形编辑器中,您将找到所有可能的值,甚至可以查看其结果.
Mav*_*1st 39
如果您正在使用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>
Run Code Online (Sandbox Code Playgroud)
Nag*_*ddy 36
您需要设置TextView Gravity(中心水平和中心垂直),如下所示:
android:layout_centerHorizontal="true"
Run Code Online (Sandbox Code Playgroud)
和
android:layout_centerVertical="true"
Run Code Online (Sandbox Code Playgroud)
并动态使用:
textview.setGravity(Gravity.CENTER);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Run Code Online (Sandbox Code Playgroud)
小智 32
在我看来,
android:gravity="center"
Run Code Online (Sandbox Code Playgroud)
比...更好
android:layout_centerInParent="true"
Run Code Online (Sandbox Code Playgroud)
哪个好,
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
Run Code Online (Sandbox Code Playgroud)
至少用于格式化文本.
Kar*_*yan 27
对于线性布局:在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"
/>
Run Code Online (Sandbox Code Playgroud)
要在运行时执行此操作,请在您的活动中使用此类内容
TextView textView1 =(TextView)findViewById(R.id.texView1);
textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Run Code Online (Sandbox Code Playgroud)
对于相对布局:在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"
/>
Run Code Online (Sandbox Code Playgroud)
要在运行时执行此操作,请在您的活动中使用此类内容
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);
Run Code Online (Sandbox Code Playgroud)
ven*_*enu 22
在XML文件中使用.
布局文件
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="@string/stringtext"/>
Run Code Online (Sandbox Code Playgroud)
要么:
在Java类中使用它
TextView textView =(TextView)findViewById(R.id.texviewid);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Run Code Online (Sandbox Code Playgroud)
小智 20
用于相对布局
android:layout_centerInParent="true"
Run Code Online (Sandbox Code Playgroud)
以及其他布局
android:gravity="center"
Run Code Online (Sandbox Code Playgroud)
Avi*_*kar 16
如果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>
Run Code Online (Sandbox Code Playgroud)
对于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>
Run Code Online (Sandbox Code Playgroud)
noo*_*oob 15
使用重力适用于TextView时,在API级别17中实现了另一种方法 -
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
Run Code Online (Sandbox Code Playgroud)
不知道差异,但它也有效.但仅适用于API级别17或更高级别.
Yud*_*ira 13
在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>
Run Code Online (Sandbox Code Playgroud)
use*_*er1 11
最简单的方法(令人惊讶的是,仅在评论中提到,因此我发布的答案)是:
textview.setGravity(Gravity.CENTER)
Run Code Online (Sandbox Code Playgroud)
dys*_*oko 10
如果您尝试将文本放在TableLay中的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>
Run Code Online (Sandbox Code Playgroud)
这是我在我的应用程序中使用的答案.它在屏幕中央显示文本.
<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" />
Run Code Online (Sandbox Code Playgroud)
如果您使用相对布局:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/stringname"
android:layout_centerInParent="true"/>
Run Code Online (Sandbox Code Playgroud)
如果您使用的是LinearLayout
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/stringname"
android:layout_gravity="center"/>
Run Code Online (Sandbox Code Playgroud)
实际上,我们可以通过排除 fontPadding 来做得更好。
<TextView
android layout_height="wrap_content"
android layout_height="wrap_content"
android:includeFontPadding="false"
android:textAlignment="center"
/>
Run Code Online (Sandbox Code Playgroud)
正如上面提到的许多答案都可以.
android:gravity="center"
Run Code Online (Sandbox Code Playgroud)
如果你想垂直居中:
android:gravity="center_vertical"
Run Code Online (Sandbox Code Playgroud)
或只是横向:
android:gravity="center_horizontal"
Run Code Online (Sandbox Code Playgroud)
小智 7
只需在XML文件中,将textview gravity设置为center:
<TextView
android:gravity="center" />
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
对于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>
Run Code Online (Sandbox Code Playgroud)
和pro-grammatically 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);
Run Code Online (Sandbox Code Playgroud)
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" />
Run Code Online (Sandbox Code Playgroud)
小智 7
试试这个方法,它会起作用
<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>
Run Code Online (Sandbox Code Playgroud)
您可以这样做以使文本居中
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" />
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
我们可以通过以下多种方式实现这一目标: -
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"
/>
Run Code Online (Sandbox Code Playgroud)
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"
/>
Run Code Online (Sandbox Code Playgroud)
XML方法03
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:gravity="center"
android:text="@strings/text"
/>
Run Code Online (Sandbox Code Playgroud)
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"
/>
Run Code Online (Sandbox Code Playgroud)
Java方法01
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Run Code Online (Sandbox Code Playgroud)
Java方法02
textview.setGravity(Gravity.CENTER);
Run Code Online (Sandbox Code Playgroud)
Java方法03
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
Run Code Online (Sandbox Code Playgroud)
使用 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"
/>
Run Code Online (Sandbox Code Playgroud)
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:gravity="center"
android:layout_height="wrap_content">
<TextView
android:id="@+id/failresults"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:gravity="center_vertical|center_horizontal"
android:text=""
android:textSize="12sp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
如果你在线性布局中有textview,你需要将它们设置为中心重力
| 归档时间: |
|
| 查看次数: |
1185511 次 |
| 最近记录: |