2011-01-27 62 views
14

有沒有辦法讓TextView選擇一種字體大小,使其填充任何可用的空間?例如:讓TextView縮放其字體大小以填充父項?

<LinearLayout 
    layout_width="fill_parent" 
    layout_height="50dip" > 

    <TextView 
    layout_width="fill_parent" 
    layout_height="fill_parent" 
    textSize="scale?" /> 

</LinearLayout> 

感謝

+0

任何機會,你可以發佈你創建的內容的代碼檢查呢?謝謝!! – 2011-08-28 05:05:27

回答

11

沒有,有沒有內置的字體縮放在TextView。您可能會在TextView的子項中重載onDraw()方法,但TextView不支持自動縮放文本。

在該另一question.

+0

好的,是的,我只是不得不寫一些我自己,無賴。 – user291701 2011-02-09 20:07:21

0

正如在回答尼克坎皮恩引述看看,我用了一個循環和靜態佈局重複,以正確的尺寸。我的要求是,以適應寬度和使用不超過一條線(沒有橢圓):

int i = 0; 
    while(i < 2) { 
     layout = new StaticLayout(text, textPaint, w, Alignment.ALIGN_NORMAL, 1, 0, true); 
     i = layout.getLineCount(); 
     textSize += 2; 
     textPaint.setTextSize(textSize); 
    } 
    textPaint.setTextSize(textSize*0.95f); 
+0

如果文本視圖不夠高,此方法可能會導致文本的頂部被裁剪掉。 – 2014-10-08 03:27:29

0

只是爲了更新,從API 26(的Android 8.0)TextViews具有按比例在水平軸和垂直軸

文本的屬性
<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    android:layout_width="match_parent" 
    android:layout_height="200dp" 
    android:autoSizeTextType="uniform" /> 

Autosizing TextViews