我使用(水平)PagerView在屏幕上显示1页,用户可以通过向左或向右滑动来切换页面。 每个页面在RelativeLayout中保存多个视图,其中一个是TextView中的描述文本(其大小按重量计算)。
我希望所有页面的描述文字都使用相同的字体大小。
这需要根据最长的描述(所有页面中的TextViews都在相同的高度)。
我预先提供了所有描述的数组,但我没有渲染TextView,因为它们位于不同的页面中,而且在滚动到页面之前,android不会绘制它。
知道如何计算正确的字体大小吗?
答案 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);