<?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%。
但是,如果我将文本的大小增加到19px或视图高度的95%,则垂直居中会中断,因为似乎文本视图不会将文本绘制到顶部上方的视图。
是否可以将文本分隔开?
答案 0 :(得分:1)
您可以将高度设置为wrap_content
,然后使用lineSpacingMultiplier
将行高设置为文本高度的1.3
倍。这将意味着文本始终大约是行高的75%。
此外,您应该使用sp
而不是dp
来设置文本大小,以便当人们在其设置中更改文本大小时,应用程序中的文本大小会更新,这对于可访问性很重要。 / p>
最后,除非您计划添加更多视图,否则无需将TextView
包装在LinearLayout
中
答案 1 :(得分:0)
我分别使用Canvas.DrawLine
绘制了背景,并将TextView
向上移动了背景高度的10%。