【问题标题】:How to Shrink Font in Order to fit Inside Width of View in Android?如何缩小字体以适应 Android 中视图的内部宽度?
【发布时间】:2019-05-06 13:14:36
【问题描述】:

假设我们有一个固定宽度的单行文本视图。我们想在其中显示一个字符串,但我们还不知道该字符串有多长。

我们希望字符串在必要时缩小,以适应文本视图而不被截断。

在 IOS 中,这是通过 this 完成的:

之前:

之后:

什么是 Android 等价物?

我咨询了this 并尝试在代码中进行测试:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tv = findViewById(R.id.tvc);
        tv.setText("aa aaa a aaaaaaa aaaadfgd gsfg fsdg dfs gdfs gds fg dsg dsg sdfg dsf g zzzzzzzzzz");

        TextViewCompat.setAutoSizeTextTypeWithDefaults(tv, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);


    }

但沮丧地发现它不是自动缩小字体以适应宽度,而是扩展字体以适应height...字符串被截断得更多。

请注意:这个问题与 (Auto Scale TextView Text to Fit within Bounds) 不同,因为它没有相同的要求:我说的是严格意义上的具有 width 限制的单行文本视图...并且该问题的答案都不令人满意。

【问题讨论】:

    标签: android view android-edittext textview font-size


    【解决方案1】:

    我建议AutofitTextView。在 Android 中,自动调整 TextView 不受本机支持,因此您必须自定义。

    【讨论】:

      【解决方案2】:

      您可以使用AutofitTextView,也可以使用普通的TextView 并添加ellipsize 属性:

      <TextView ...
          android:lines="1"
          android:ellipsize="end"
          />
      

      如果字符串长度大于 textview 宽度,此属性将添加三个点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-28
        • 2018-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多