设置单个字的字体大小以填充整个屏幕

时间:2014-12-07 06:09:04

标签: android

我的部分应用在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 个答案:

答案 0 :(得分:1)

我将给你一些代码,显示与你要求的完全相反的代码。下面的代码缩小了一行文本,直到它适合所需的区域。但是有一个基本的想法:获取textView的绘制然后测量它。调整大小并重新测量它,例如textView.getPaint()。measureText(“你的文字”)

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();
}