【问题标题】:Setting font-size of a single word to fill the entire screen设置单个单词的字体大小以填满整个屏幕
【发布时间】:2014-12-07 15:20:43
【问题描述】:

我的应用程序的一部分在 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 个字符的单词总是相同的)?

谢谢!

【问题讨论】:

  • 是的,如果它是常量,只需使用图像。

标签: android


【解决方案1】:

我将为您提供一些与您的要求完全相反的代码。下面的代码会缩小一行文本,直到它适合所需的区域。但是有一个基本思路:获取textView的paint,然后测量。调整尺寸并重新测量,例如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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 2015-06-06
    • 2014-08-12
    相关资源
    最近更新 更多