TextView是否缩放其字体大小以填充父级?

时间:2011-01-27 21:13:59

标签: android

有没有办法让TextView选择一个字体大小,以便填充它可用的任何空间?例如:

<LinearLayout
  layout_width="fill_parent"
  layout_height="50dip" >

  <TextView
    layout_width="fill_parent"
    layout_height="fill_parent"
    textSize="scale?" />

</LinearLayout>

由于

3 个答案:

答案 0 :(得分:11)

不,TextView中没有内置字体缩放功能。您可以在onDraw()的子项中重载TextView方法,但TextView不支持自动缩放文本。

看一下这个question.

答案 1 :(得分:1)

只需更新,从API 26(Android 8.0)更新TextViews有一个属性可以在水平和垂直轴上缩放文本

<?xml version="1.0" encoding="utf-8"?>
<TextView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:autoSizeTextType="uniform" />

Autosizing TextViews

上查看

答案 2 :(得分:0)

正如Nick Campion所引述的那样,我使用循环和静态布局来迭代到正确的大小。我的要求是适应宽度并使用不超过一行(没有省略号):

    int i = 0;
    while(i < 2) {
       layout = new StaticLayout(text, textPaint, w, Alignment.ALIGN_NORMAL, 1, 0, true);
        i = layout.getLineCount();
        textSize += 2;
        textPaint.setTextSize(textSize);
    }
    textPaint.setTextSize(textSize*0.95f);