我正在尝试调整线性布局中的行大小,具体取决于布局中的行数(布局具有固定的高度)。行应该总是完全填充父布局。所以1行是父级的全部大小,2行都是大小的一半等。 这个工程,我现在试图调整文本的大小,但它调整大小时被切断,即使textview是apearently足够大(I接通果冻豆的放映视图边界功能)以编程方式调整文本大小,修复了Viewbounds中的文本?
private void setHeightOfRows(ViewGroup parent) {
int height = parent.getHeight();
int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
LinearLayout.LayoutParams p = (LayoutParams) parent.getChildAt(i).getLayoutParams();
p.height = height/childCount;
parent.getChildAt(i).setLayoutParams(p);
((ViewGroup) parent.getChildAt(i)).setClipChildren(false);
Log.i("FontSize", "Set font size to " + 10/childCount);
((TextView) parent.getChildAt(i).findViewById(R.id.name_text)).setTextScaleX(10/childCount);// .setTextSize(10/childCount);
}
}
,此方法被在ViewTreeObserver执行,所以之后的UI被呈现。
如何在不切断文本的情况下调整文本大小?
这是没问题的,我试过setTextSize藏汉,文本才能正确调整,错误的是,文本被切断顶部和底部的地方它不应该是 – 2013-02-14 20:16:13
SetScaleX根本不会影响顶部和底部的截止。它水平延伸东西。如果您在截断顶部和底部时遇到问题,则需要使用不同的字体大小,这是setTextSize的作用。你在那里设置了多大的尺寸? 10/childCount不正确,您应该使用Paint.measureText以像素为单位查找字符串的高度,并将字体更改为更小和更小的字体,直到找到适合给定空间的字体为止。 – 2013-02-14 20:20:10
是的,我很抱歉,我只是将这段代码从我的开发中剪掉了,它非常混乱,我先setTextSize,然后再清理一遍,再次发布,等一下! – 2013-02-14 20:26:52