Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Java 如何根据文本视图的宽度以编程方式设置文本视图中的文本大小。?_Java_Android_Android Layout_Android Activity_Textview - Fatal编程技术网

Java 如何根据文本视图的宽度以编程方式设置文本视图中的文本大小。?

Java 如何根据文本视图的宽度以编程方式设置文本视图中的文本大小。?,java,android,android-layout,android-activity,textview,Java,Android,Android Layout,Android Activity,Textview,我在应用程序中使用的文本视图应该是单行的,并且具有预定义的宽度,其中可能包含从数据库中获取的文本,范围从单个单词到最多3个单词。我在stack overflow中找到了一个链接,用于根据文本视图的高度调整文本大小,但我正在寻找文本视图宽度方面更为特殊的内容。这将起作用,但您可能会找到更快的发布方式。循环中的增量确实要花费一些时间,因此在单个布局中要节省使用 Display display = this.getWindowManager().getDefaultDisplay();

我在应用程序中使用的文本视图应该是单行的,并且具有预定义的宽度,其中可能包含从数据库中获取的文本,范围从单个单词到最多3个单词。我在stack overflow中找到了一个链接,用于根据文本视图的高度调整文本大小,但我正在寻找文本视图宽度方面更为特殊的内容。

这将起作用,但您可能会找到更快的发布方式。循环中的增量确实要花费一些时间,因此在单个布局中要节省使用

    Display display = this.getWindowManager().getDefaultDisplay();

    Point size = new Point();
    display.getSize(size);
    int width = size.x; //Get screen width. There are other ways to do this too.

    int tSize = 10;
    tv.setTextSize(tSize); //tv is your TextView

    while (tv.getPaint().measureText((String) tv.getText())
            < width){
        tSize++;
        tv.setTextSize(tSize); //Increment up till screen width is filled.
        }
Display Display=this.getWindowManager().getDefaultDisplay();
点大小=新点();
display.getSize(size);
int width=size.x//获取屏幕宽度。还有其他方法可以做到这一点。
int tSize=10;
tv.setTextSize(tSize)//电视是你的文本视图
while(tv.getPaint().measureText((字符串)tv.getText())
<宽度){
tSize++;
tv.setTextSize(tSize);//递增,直到屏幕宽度填满为止。
}