Android動(dòng)態(tài)調(diào)整字體大小以適應(yīng)控件寬度

最近遇到一個(gè)用ImageView為背景來顯示文字的TextView適配問題氏义,當(dāng)要顯示的文字太長時(shí)文本會(huì)換行,而iOS中沒有這個(gè)問題。

在網(wǎng)上查找資料,發(fā)現(xiàn)可以用TextPaint加measureText方法解決這個(gè)問題僚碎,代碼如下:

 /** 字體大小適配**/
 public static void adjustTvTextSize(TextView tv, int maxWidth, String text)
{
    int avaiWidth = maxWidth - tv.getPaddingLeft() - tv.getPaddingRight() - 10;

    if (avaiWidth <= 0) {
        return;
    }

    TextPaint textPaintClone = new TextPaint(tv.getPaint());
    float trySize = textPaintClone.getTextSize();

    while (textPaintClone.measureText(text) > avaiWidth) {
        trySize--;
        textPaintClone.setTextSize(trySize);
    }

    tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, trySize);
}

不過在調(diào)試的時(shí)候又發(fā)現(xiàn)其他問題,我是在AdaptergetView 方法中設(shè)置textview的文字內(nèi)容的阴幌,問題出在最大寬度值的獲取上面勺阐。

一開始我直接用textView的getWidth方法。運(yùn)行之后發(fā)現(xiàn)沒有效果矛双,原來getWidth獲取到的值為0渊抽。不過當(dāng)listView刷新一次后自適應(yīng)會(huì)有效!

然后我試著將maxWidth改成textView的 getMeasuredWidth议忽,這時(shí)懒闷,第一次顯示的時(shí)候是正常的,不過每刷新一次listview栈幸,文字都小一號(hào)愤估,多刷幾次后都看不見了!原來字體縮小以后 textViewgetMeasuredWidth 方法獲取到的值也減小了速址。

最終使用的方法是用背景圖片 imageViewgetMeasuredWidth 方法獲取寬度玩焰。能夠正常顯示。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末芍锚,一起剝皮案震驚了整個(gè)濱河市昔园,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌并炮,老刑警劉巖默刚,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異逃魄,居然都是意外死亡荤西,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來皂冰,“玉大人店展,你說我怎么就攤上這事⊥毫鳎” “怎么了赂蕴?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舶胀。 經(jīng)常有香客問我概说,道長,這世上最難降的妖魔是什么嚣伐? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任糖赔,我火速辦了婚禮,結(jié)果婚禮上轩端,老公的妹妹穿的比我還像新娘放典。我一直安慰自己,他們只是感情好基茵,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布奋构。 她就那樣靜靜地躺著,像睡著了一般拱层。 火紅的嫁衣襯著肌膚如雪弥臼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天根灯,我揣著相機(jī)與錄音径缅,去河邊找鬼。 笑死烙肺,一個(gè)胖子當(dāng)著我的面吹牛纳猪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播桃笙,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼兆旬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了怎栽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤宿饱,失蹤者是張志新(化名)和其女友劉穎熏瞄,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谬以,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡强饮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了为黎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邮丰。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡行您,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出剪廉,到底是詐尸還是另有隱情娃循,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布斗蒋,位于F島的核電站捌斧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏泉沾。R本人自食惡果不足惜捞蚂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望跷究。 院中可真熱鬧姓迅,春花似錦、人聲如沸俊马。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潭袱。三九已至柱嫌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屯换,已是汗流浹背编丘。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留彤悔,地道東北人嘉抓。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像晕窑,于是被迫代替她去往敵國和親抑片。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容