TextView大小取决于TextView宽度

时间:2014-07-16 16:46:07

标签: android textview

取决于TextView宽度,我希望将textSize设置得尽可能大,以使其不超过限制。

我的代码中的问题是,calcul似乎不正确,因为文本太大了。

我用Gimp测量了标签宽度(在屏幕截图上),变量textWidthToFit是正确的(在我的情况下是298px)

这里我的代码(我的班级覆盖TextView):

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh)
{
    if (stretchable)
    {
        resizeText();
    }

    super.onSizeChanged(w, h, oldw, oldh);
}

private void resizeText()
{
    if (stretchable && (getText().length() > 0))
    {
        float textWidth=0;
        setTextSize(maxTextSize);
        float newTextSize=getPaint().getTextSize();
        int textWidthToFit = getMeasuredWidth() - getPaddingLeft() - getPaddingRight();
        TextPaint paint = new TextPaint(getPaint());
        String text = getText().toString();

        boolean sizeFound = false;
        while (!sizeFound)
        {
            newTextSize -= 0.5f;

            paint.setTextSize(newTextSize);
            textWidth = paint.measureText(text);

            if (textWidth < textWidthToFit || newTextSize < 5)
            {
                sizeFound = true;
            }

        }

        setTextSize(newTextSize);
    }
}

感谢。

0 个答案:

没有答案