Android TextView中的偏移文本
此代码成功地将文本视图中的文本垂直对齐。字体大小为视图高度的75% 但是,如果我将文本的大小增加到(比如)19px或视图高度的95%,则垂直居中会中断,因为文本视图似乎不会绘制高于视图顶部的文本Android TextView中的偏移文本,android,Android,此代码成功地将文本视图中的文本垂直对齐。字体大小为视图高度的75% 但是,如果我将文本的大小增加到(比如)19px或视图高度的95%,则垂直居中会中断,因为文本视图似乎不会绘制高于视图顶部的文本 可以将文本向上分流吗?您可以将高度设置为wrap\u content,然后使用lineSpacingMultiplier将行高设置为文本高度的1.3倍。这意味着文本始终约为行高的75% 此外,对于文本大小,您应该使用sp而不是dp,这样,当人们更改其设置中的文本大小时,应用程序更新中的文本大小对于可
可以将文本向上分流吗?您可以将高度设置为
wrap\u content
,然后使用lineSpacingMultiplier
将行高设置为文本高度的1.3倍。这意味着文本始终约为行高的75%
此外,对于文本大小,您应该使用sp
而不是dp
,这样,当人们更改其设置中的文本大小时,应用程序更新中的文本大小对于可访问性非常重要
最后,您不需要将文本视图
包装成线性布局
,除非您计划添加更多视图我使用画布单独绘制背景。绘制线
并将文本视图
向上移动背景高度的10%。我使用的是px而不是dp,该值基于运行时高度。这会避免不同文本/屏幕大小的问题吗?这会导致不同的问题,如果使用px
,在高密度屏幕中,文本将比低密度屏幕小。由于屏幕大小和密度的问题,android上的大小通常应避免使用px
,但是如果第三方控件提供了一个x像素的框,那么将某些文本的高度作为x的百分比将是安全的?(只要第三方控件能够正确缩放…)如果第三方提供文本视图的高度,那么您就必须以编程方式设置文本的高度,因为您在编译时不知道xml的高度。在这种情况下,px可能没问题,但第三方可能会使您的视图在某些设备上看起来很奇怪。如果可能的话,我建议不要使用第三方,因为我正在运行时设置文本大小。
<?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>