3

在我的最后一个活动中,我得到了一个 textView,如果它太大,它就会保持相同的大小并转到下一行。有没有办法让我的 textView 缩小,如果它太大,它可以放在一条线上?

所以而不是:

ABCDEFGHIJ(两行大字体)
HIJK

我想:

abcdefghijk(一行小字体)

所以这一切都适合从左到右在 fone 内的一条线上

4

4 回答 4

3

如果您想在 TextView 上自动调整大小,请使用:

<TextView
        android:layout_width="60dp"
        android:layout_height="48dp" 
        android:lines="2"
        android:text="Hello world"
        android:autoSizeTextType="uniform"/>

非常重要的是不要使用 android:singleLine="true" 因为它已被弃用。Ans 有一个固定的大小,以便文本的自动调整大小将正常工作。你也可以选择你想要的行数。

另请注意,最小尺寸为 12sp,最大尺寸为 112sp,粒度为 1px。但是如果你想自定义这些尺寸,你可以使用:

android:autoSizeMinTextSize="8sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp"

您可以添加到上面的 xml 中。

于 2019-10-28T09:10:24.577 回答
1

android:singleLine="true" 文本视图中的这个属性会有所帮助,它不会减小文本的大小,但允许在单行中显示文本。

于 2012-04-20T08:05:47.170 回答
1

这是自定义 View 子类的工作。创建 View 子类非常容易,在这种情况下,您只需要重写 onDraw 方法,因为您不需要实现任何特殊的用户交互。基本上以参考点大小测量文本的宽度,然后根据绘制文本的大小选择缩放的点大小。

于 2012-04-22T09:50:47.277 回答
1

1)将 android:lines="1" 放入您的
文本视图 2)如果您想在行尾添加 3 个点,则将 android:ellipsize="end" 放入您的文本视图

注意:
不要使用 android:singleLine="true",因为它现在已被弃用。

于 2017-12-14T14:16:47.520 回答