推 sdyy:感謝啦 04/09 12:26
※ 引述《sdyy (中壢市的小智)》之銘言:
: 因為想要動態改變字體大小,但又怕超出範圍
: 導致layout亂掉,所以想要知道有沒有辦法知道每行字數
: 跟一個頁面下能有幾行
: 字體大小會用setTextSize改變,可選定依照pixel來變
: 但因為layout範圍並不是直接就跟螢幕大小一樣
: 所以會有誤差,而字加上下空白的高度就更不知道了
: 中間插的空白比例好像不太固定...
: 導致有時都爆出頁面,有時又太過小
簡單的方法:
TextView 可以利用 setMaxLines() 來設定最多的行數,
也可用利用 setEllipsize() 來設定當給定的文字多於顯示範
圍,要如何顯示。
複雜的方法:
Paint 可以先用 setTextSize(),給定字體大小,
然後利用 measuerText(),來計算這串文字到底多長。
而實際每個文字的寬度,可以利用 getTextWidths() 取得。
這麼麻煩的原因在於有的英文字型並不是每個字等寬,
像是 I 和 M 的寬度就有明顯的差別,所以需要個別計算。
字上下空白的話應該會是和 TextView.setLineSpacing()有關。
--
hope it's helpful:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.244.250