我正在嘗試調整線性佈局中的行大小,具體取決於佈局中的行數(佈局具有固定的高度)。行應該總是完全填充父佈局。所以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