Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自动调整文本视图Android_Android - Fatal编程技术网

自动调整文本视图Android

自动调整文本视图Android,android,Android,我终于找到了根据textview的高度调整文本大小的代码。但是我不知道如何在这个函数中传递文本,我的文本是出于另一个目的 public int getHeightOfMultiLineText(String text,int textSize, int maxWidth) { TextPaint paint = new TextPaint(); paint.setTextSize(textSize); int index = 0;

我终于找到了根据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);
        // obtain space between lines
        double lineSpacing = Math.max(0,((linecount - 1) * bounds.height()*0.25)); 

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

    }
public int-getHeightOfMultiLineText(字符串文本、int-textSize、int-maxWidth){
TextPaint paint=新的TextPaint();
paint.setTextSize(textSize);
int指数=0;
int linecount=0;
while(索引
您可以使用
urTextView.getText().toString()将TextView的文本作为字符串获取。


这应该有效。

将文本保存为字符串并传递给getHeightofMultiLineText(ur_String_text,12,10);你是不是有什么错误?如何传递到tv.setText(接收数据);对于这个函数??他们在函数中实例化textview,然后设置文本,不是吗?我得到的数据类似于tv.setText(receivingdata);如何在接收数据后传递给函数,do
String text=tv.getText().toString()并传递到函数。然后我必须删除tv.setText(接收数据);不,你不必。文本在文本视图电视中设置。您现在要做的就是使用此文本并更改其大小。因此,只需添加我发布的内容,然后进行检查。如果我在xml中固定了textview大小假设为50,那么它将文本设置为50,而不检查int textSize=100;,我正在main()中调用此函数?
TextView urTextView;
String text = urTextView.getText().toString();

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