有没有办法完美地居中文本?

The*_*d95 6 android textview

我想知道是否有可能创建一个自定义TextView,无论字体是什么,都能完美地居中文本.这是我现在的主要问题,但我也想知道是否可以使用像素设置特定高度,以便高度也是一致的. 比较文字字体 此图显示了不同字体的大小和居中方式.图中最长的黑线是白色空间的中间.除了字体之外,图片中的字母在各方面都是相同的.文本大小相同(text.setTextSize(TypedValue.COMPLEX_UNIT_PX, 450);),它们都是居中的.我希望有人知道这些问题的答案!如果您需要我的应用程序中的任何代码,请询问.谢谢!

编辑:我知道android:gravity="veritcal_center",但这只在一定程度上起作用.你在上面看到的是实现的textview,但每种字体都有不同的重心,因此android:gravity="veritcal_center"不会真正使所有这些都完美地沿着屏幕居中.我正在寻找一种方法来创建一个自定义textView,以某种方式测量文本的高度,并使其与这些参数居中.@vmironov在评论中的建议有效,但前提是textview有一个字符.我无法搞砸他的代码,但是当我有机会的时候,我会在这里发帖,如果我发现了什么的话.谢谢!

Boo*_*ger -1

您应该能够通过将重力属性应用于包含的 TextView 来使文本居中。

在 XML 中,您可以为 TextView 分配一个属性,如下所示:

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:textSize="18sp"
        android:textAppearance="?android:attr/textAppearanceMedium" 
        android:text="@string/some_text" />
Run Code Online (Sandbox Code Playgroud)

如果您确实想为文本指定特定大小,强烈建议您使用 SP(缩放像素)作为测量单位,而不是像素。您还可以为 TextView 设置外观属性来控制大小,代码示例中也显示了这一点。