有没有办法让TextView选择一个字体大小,以便填充它可用的任何空间?例如:
<LinearLayout
layout_width="fill_parent"
layout_height="50dip" >
<TextView
layout_width="fill_parent"
layout_height="fill_parent"
textSize="scale?" />
</LinearLayout>
由于
答案 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" />
上查看
答案 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);