自动调整文本视图 Android

10 浏览
0 Comments

自动调整文本视图 Android

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

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

// 获取行间距

double lineSpacing = Math.max(0,((linecount - 1) * bounds.height()*0.25));

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

}

0
0 Comments

问题的原因是:在Android中,当文本内容超过TextView的高度限制时,文本内容会被截断或省略,导致显示不完整。解决方法是动态调整TextView的文本大小,使其适应TextView的高度限制。

解决方法如下:

1. 获取TextView的文本内容,将其转换为字符串:`String text = urTextView.getText().toString();`

2. 定义初始的文本大小和最大高度:`int textSize = 100; int maxHeight = 50;`

3. 使用循环来逐渐减小文本大小,直到文本的多行高度小于最大高度为止:

while(getHeightOfMultiLineText(text, textSize, maxWidth) > maxHeight) {
    textSize--;
}

4. 确保将此代码添加到适当的位置,例如在onCreate()方法中。

以下是完整的解决方案代码:

TextView urTextView;
String text = urTextView.getText().toString();
int textSize = 100;
int maxHeight = 50;
while(getHeightOfMultiLineText(text,textSize,maxWidth) > maxHeight) {
    textSize--;
}

请注意,这段代码中的`getHeightOfMultiLineText()`函数需要根据具体情况进行实现,以计算多行文本的高度。

希望以上解决方案可以帮助您解决问题。如果仍然遇到困难,请提供更多详细信息,以便我们能够帮助您进一步解决问题。

0