Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 中心文本安卓按钮_Android_Gravity - Fatal编程技术网

Android 中心文本安卓按钮

Android 中心文本安卓按钮,android,gravity,Android,Gravity,我的问题很简单。 在安卓系统中,如何在按钮上居中显示文本? 我尝试将padding设置为0,将gravity设置为center,但运行时的结果仍然是文本水平居中,而不是垂直。文本有点下移了 <Button android:id="@+id/btnSame" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="cente

我的问题很简单。 在安卓系统中,如何在按钮上居中显示文本? 我尝试将padding设置为0,将gravity设置为center,但运行时的结果仍然是文本水平居中,而不是垂直。文本有点下移了

<Button
    android:id="@+id/btnSame"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginBottom="10dip"
    android:layout_marginLeft="10dip"
    android:layout_marginRight="10dip"
    android:background="@drawable/layout_button_different"
    android:gravity="center_vertical|center_horizontal"
    android:height="30dp"
    android:padding="0dip"
    android:text="@string/equals"
    android:textColor="@drawable/layout_button_different"
    android:textSize="50dp"
    android:width="70dp" />
这是可行的,但在此之后,我设置:

btnEquals.setCompoundDrawables(null, null, null, null);
btnEquals.setPadding(0, 0, 0, 0);

结果是垂直对齐不正确。

由于所选的尺寸,现有布局无法使文本居中。您已将按钮高度设置为
30dp
,文本大小为
50dp
,无论出于何种原因,Android无法处理该问题并将文本居中。如果你让你的按钮变大或文本变小,你会看到居中的工作


<Button
                android:id="@+id/AnswerE"
                style="@style/defaultbuttonstyle"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:onClick="AnswerCheck"
                android:text=" E "
                android:textStyle="bold" />

这对我很有效

您也可以在setPadding中使用负数。如果字体大,按钮小,这可能会有所帮助。尝试将顶部或底部设置为一个更负的数字,如果它仍然偏离中心。

< P>有三个系统要考虑。xml布局设计器、模拟器和真实手机。如果指定gravity=“center”,则按钮中的文本如下所示。 在xml布局设计器中,看起来最左边的字母位于按钮的中心,但其余字母位于右侧。(看起来不正确) 在模拟器中,文本在中间显示良好。(正确)
在手机中,文本在中间显示良好。(正确)

这很简单,你可以把这个:

android:textAlignment="center"

您只需将这一行添加到布局xml代码中的按钮:

android:gravity="center"

您只需将布局高度设置为包装内容,并根据需要改变填充属性

如果高度为30dp,那么
android:layout\u height=“包装内容”
有什么用?@hotveryspicy——将按钮布局放入xml并加载,您将看到,
wrap_内容
似乎并不关心本例中文本的溢出。我不知道为什么会发生这种情况,但事实就是这样(至少在通过Eclipse可视化显示版面时是这样;我没有把它放在设备上)。谢谢,但是删除android:layout\u height或android:layout\u width会在运行时异常中解决。@dieters——没有人建议您删除这两个选项;它们是Android所必需的。android:textSize=“50dp”是一个问题——特别是如果你在代码中将其更改为15;要么扔掉它,要么在布局中将它设置为15。啊哈,我有一个确切的问题:)你救了我一个周末:)谢谢你的回答,我花了15分钟想知道我做错了什么,结果只是“看起来”不正确。你没有弄清楚什么属性有助于将按钮的内容居中,在提供的问题中,内容是“文本”,属性android:gravity=“center”可以帮助您集中内容。这是一个很好的答案,但我认为您可以将其简化为一行android:textalign=“center”。谢谢@Alex的回答。
android:gravity="center"