查找TextView的文本大小

时间:2017-11-08 19:19:24

标签: android text textview size font-size

我使用(水平)PagerView在屏幕上显示1页,用户可以通过向左或向右滑动来切换页面。 每个页面在RelativeLayout中保存多个视图,其中一个是TextView中的描述文本(其大小按重量计算)。

我希望所有页面的描述文字都使用相同的字体大小。

这需要根据最长的描述(所有页面中的TextViews都在相同的高度)。

我预先提供了所有描述的数组,但我没有渲染TextView,因为它们位于不同的页面中,而且在滚动到页面之前,android不会绘制它。

知道如何计算正确的字体大小吗?

2 个答案:

答案 0 :(得分:1)

找到解决方案以便共享。 这可以使用StaticLayout轻松实现。创建StaticLayout时,您可以指定其宽度并检查其高度(如果文本太长,它将自动以新行开始)。 只需遍历您的"文本数组",为每行文本创建一个具有所需宽度的StaticLayout,并确保它的高度适合您的TextView高度,否则,减小字体大小并重新检查。您最终将获得适合TextView大小的最大字体大小。

答案 1 :(得分:0)

获取第一个textview文字大小&字体。然后将该大小和字体设置为其他文本视图。或者你可以得到高度和高度textview&的宽度把它设置给其他人。

        float size = textView1.getTextSize(); //get the size of the textview text
        textView2.setTextSize(size) //set the size for other textview's texts

//if you want look in same size, all text must have same TypeFace(Font). To do that use.
        textView1.getTypeFace();
        textView2.setTypeFace();

//or you can get hight & width of the textview.    
    textView.setText("GetHeight");
    textView.measure(0, 0);       //must call measure!
    textView.getMeasuredHeight(); //get height
    textView.getMeasuredWidth();  //get width

//set textview height & width
    LayoutParams params = (LayoutParams) textView.getLayoutParams();
    params.height = 70;
    params.width = 100;        
    textView.setLayoutParams(params);