2014-12-07 22 views
0

我的应用程序的一部分在TextView中显示单个5个字符的单词,该单词应填充整个屏幕。该问题下面列出的地址同样的问题:设置单个字的字体大小以填满整个屏幕

How to adjust text font size to fit textview

Have TextView scale its font size to fill parent?

Text size and different android screen sizes

Auto-fit TextView for Android

但是,因为我的情况下,只需要一个5个字符的字填满整个屏幕,有没有更简单的方法来做到这一点?如果不是,简单地提供drawable资源(假设5个字符的字总是相同)是否可行?

谢谢!

+1

是的,如果它是恒定的,只需使用图像。 – 2014-12-07 06:26:05

回答

1

我打算给你一些代码,它显示了你所要求的完全相反。下面的代码缩小了一行文字,直到它符合所需的区域。但有一个基本的想法:获取textView的颜色,然后进行测量。调整尺寸并重新测量textView.getPaint()。measureText(“Your text”)

public static float calculateTextSizeToFit(TextView textView, String desiredText, int limitSpSize, float desiredTxtPxSize) { 
    Paint measurePaint = new Paint(textView.getPaint()); 
    measurePaint.setTextSize(desiredTxtPxSize); 
    float pWidth = measurePaint.measureText(desiredText); 
    float labelWidth = textView.getWidth(); 
    int maxLines = textView.getMaxLines(); 

    while (labelWidth > 0 && pWidth/maxLines > labelWidth-20) { 
     float textSize = measurePaint.getTextSize(); 
     measurePaint.setTextSize(textSize-1); 
     pWidth = measurePaint.measureText(desiredText); 
     if (textSize < TypedValue.applyDimension(
       TypedValue.COMPLEX_UNIT_SP, limitSpSize, 
       textView.getContext().getResources().getDisplayMetrics())) break; 
    } 
    return measurePaint.getTextSize(); 
} 
相关问题