2014-12-07 114 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(); 
}