【问题标题】:Auto Adjust Textview Android自动调整 Textview Android
【发布时间】:2013-07-16 22:21:35
【问题描述】:

我终于找到了根据 textview 的高度调整文本大小的代码。Source,但我不知道如何在这个函数中传递文本,我的文本是从另一个意图开始的

public int getHeightOfMultiLineText(String text,int textSize, int maxWidth) {
        TextPaint paint = new TextPaint();
        paint.setTextSize(textSize);
        int index = 0;
        int linecount = 0;
        while(index < text.length()) {
            index += paint.breakText(text,index,text.length(),true,maxWidth,null);
            linecount++;
        }

        Rect bounds = new Rect();
        paint.getTextBounds("Yy", 0, 2, bounds);
        // obtain space between lines
        double lineSpacing = Math.max(0,((linecount - 1) * bounds.height()*0.25)); 

        return (int)Math.floor(lineSpacing + linecount * bounds.height());

    }

【问题讨论】:

  • 将文本保存为String并传递给getHeightofMultiLineText(ur_string_text,12,10);
  • 你是不是出错了?
  • 如何传递给 tv.setText(receivingdata);到这个功能??
  • 嘿,在函数中实例化textview,然后设置文本不是吗?

标签: android


【解决方案1】:

你可以使用 urTextView.getText().toString() 将 TextView 的文本作为字符串获取

TextView urTextView;
String text = urTextView.getText().toString();

int textSize = 100;
int maxHeight = 50;
while(getHeightOfMultiLineText(text,textSize,maxWidth) > maxHeight)
    textSize--;

这应该可行。

【讨论】:

  • 我正在获取这样的数据 tv.setText(receivingdata);如何传递给函数
  • 收到数据后,做String text = tv.getText().toString();并传递给函数。
  • 然后我必须删除 tv.setText(receivingdata);
  • 不,您不必这样做。文本在 textview tv 中设置。您现在要做的就是使用此文本并更改其大小。所以只需添加我发布的内容,然后检查。
  • 如果我修复了 xml 中的 textview 大小假设为 50,那么它将文本设置为 50,而不检查 int textSize = 100;,我在 main() 中调用此函数?
猜你喜欢
  • 2021-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-23
相关资源
最近更新 更多