如何根据文本视图的宽度以编程方式在文本视图中设置文本大小。

时间:2015-01-07 09:37:51

标签: java android android-layout android-activity textview

我在应用程序中使用的文本视图应该是单行的,并且具有预定义的宽度,该宽度可以包含从数据库获取的文本,范围从单个单词到最多3个单词。我在堆栈溢出中找到了一个链接,用于根据文本视图的高度调整文本大小,但我正在寻找更具特色的文本视图宽度。

1 个答案:

答案 0 :(得分:0)

这样可行,但您可能会找到更快的发布方式。循环中的增量确实花费了一些时间,因此在单个布局中谨慎使用。

    Display display = this.getWindowManager().getDefaultDisplay();

    Point size = new Point();
    display.getSize(size);
    int width = size.x; //Get screen width. There are other ways to do this too.

    int tSize = 10;
    tv.setTextSize(tSize); //tv is your TextView

    while (tv.getPaint().measureText((String) tv.getText())
            < width){
        tSize++;
        tv.setTextSize(tSize); //Increment up till screen width is filled.
        }