偏移TextView中的文本

时间:2018-08-27 13:44:07

标签: android

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="90px"
    android:layout_height="20px">
    <TextView
        android:maxLines="1"
        android:ellipsize="end"
        android:textSize="15px"
        android:textColor="@android:color/white"
        android:background="@color/material_grey_600"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical"
        android:text="hello this is some long text" />
</LinearLayout>

此代码成功地在文本视图中垂直对齐了文本。字体的大小是视图高度的75%。

enter image description here

但是,如果我将文本的大小增加到19px或视图高度的95%,则垂直居中会中断,因为似乎文本视图不会将文本绘制到顶部上方的视图。

enter image description here

是否可以将文本分隔开?

2 个答案:

答案 0 :(得分:1)

您可以将高度设置为wrap_content,然后使用lineSpacingMultiplier将行高设置为文本高度的1.3倍。这将意味着文本始终大约是行高的75%。

此外,您应该使用sp而不是dp来设置文本大小,以便当人们在其设置中更改文本大小时,应用程序中的文本大小会更新,这对于可访问性很重要。 / p>

最后,除非您计划添加更多视图,否则无需将TextView包装在LinearLayout

答案 1 :(得分:0)

我分别使用Canvas.DrawLine绘制了背景,并将TextView向上移动了背景高度的10%。