首页
/
每日頭條
/
生活
/
android系統源碼默認字體大小
android系統源碼默認字體大小
更新时间:2025-11-07 12:36:41

android系統源碼默認字體大小(字體适配方案總結)1

前言

在app實際生産開發中,字體适配是一個繞不開的話題,測試總是會用各種系統字體大小試一遍看着不舒服就給你丢一個bug,說這個頁面适配有問題,不是字體太大就是自卑遮住了,顯示不全。然後自己百度了一下解決方法,總結以下幾種簡單的解決方案。

場景一

android系統源碼默認字體大小(字體适配方案總結)2

場景一

測試人員在測試過程中經常能遇到文字顯示不全的場景,而測試有需要我們顯示所有信息,不能有省略号和遮擋,可是空間就這麼點,又不像ios一樣文字顯示不下就會自動縮小,這時候該怎麼辦呢?以前的做法一般是測量TextView文本所占的寬度與TextView控件的寬度對比,動态改變TextView的字體大小,寫起來即麻煩又耗性能。但是現在不用這麼麻煩了,Android 8.0 新增了用來動态改變TextView字體大小的新特性 Autosizing TextViews,隻需要簡單設置一下屬性即可。

例如上圖中符合需求的效果可以這樣寫:

android系統源碼默認字體大小(字體适配方案總結)3

可以看到TextView控件多了如下屬性:

  • autoSizeTextType:設置TextView是否支持自動改變字體大小,none表示不支持,uniform表示支持。
  • autoSizeMinTextSize:最小字體大小,例如設置為10sp,表示文字最多隻能縮小到10sp。
  • autoSizeMaxTextSize:最大字體大小,例如設置為18sp,表示文字最多隻能放大到18sp。
  • autoSizeStepGranularity:縮放粒度,即每次字體大小變化的數值,例如設置為1sp,表示每次縮小或放大的值為1sp。

上面的隻是針對于8.0的設備有效,如果想要兼容8.0以下設備,則需要用AppCompatTextView代替TextView,并且上面幾個屬性的命名空間需要用app命名空間。如下:

android系統源碼默認字體大小(字體适配方案總結)4

肯定很多人說 “為什麼自己寫的時候不用AppCompatTextView也能兼容8.0以下設備呢?”,那是因為你當前的xml文件對應的Activity繼承的是AppCompatActivity,如果繼承的是Activity或FragmentActivity是不能達到兼容的。這一點其實官方文檔 Autosizing TextViews 也沒有說清楚,導緻很多人誤解了,各位可以自己驗證下。

場景二

不希望字體大小随着系統的字體大小改變而改變

解決方案

  • xml

一般字體大小用的單位都是sp,這個會随着系統而更改,可以将字體大小的單位改為dp,這樣就不會變了

  • 動态編碼方式

字體大小是否随系統改變可以通過Configuration類的fontScale變量來控制,fontScale變量默認為1,表示字體大小不随系統字體大小的改變而改變,那麼我們隻需要保證fontScale始終為1即可。具體代碼如下,一般放在Activity的基類BaseActivity即可。

android系統源碼默認字體大小(字體适配方案總結)5

雖然兩種方式都可以解決場景二的問題,但是一般都是使用動态編碼方式,原因如下:

1 . 若應用需要增加類似微信可以改變字體大小的功能,如果在xml中用的是dp單位,那麼該功能将 無法實現!

2. 若需求改成字體大小需要随系統字體大小的改變而改變,隻需要删掉該段代碼即可。

3. 官方推薦使用sp作為字體單位。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
一個女孩抵觸結婚正常嗎 女孩子不想結婚正常嗎
一個女孩抵觸結婚正常嗎 女孩子不想結婚正常嗎
在不少人眼中,結婚是一件比較麻煩的事情,要根據各式各樣的結婚準備事項清單來籌辦婚禮事宜,需要花費不少的時間和精力。更何況有關婚姻的說法是很多的,比如“婚姻是墳墓”等等。接下來,我們再來看看有關“一個女孩抵觸結婚正常嗎”的内容。一個女孩抵觸結婚正常嗎正常。為什麼當前女性這麼抵觸結婚,有以下幾點原因:1...
2025-11-07
溫州十大公園排名 溫州最美公園有哪些
溫州十大公園排名 溫州最美公園有哪些
現如今,幾乎每個城市都有公園,在平時閑暇之際,煩惱衆多的時候,可以去公園遊走,也是不錯的帶娃勝地,在溫州,有很多著名的公園,風景都非常好,那麼溫州哪個公園最好玩?接下來,一起來看一下溫州最好的公園有哪些吧。1.江心嶼公園江心嶼公園位于溫州瓯江中遊,曆來都稱為瓯江蓬萊,是中國四大名嶼之一,在古代,有衆...
2025-11-07
2022年愚人節這一天有什麼套路是很好玩的 2022年愚人節有哪些好玩的套路
2022年愚人節這一天有什麼套路是很好玩的 2022年愚人節有哪些好玩的套路
愚人節是一年一度的套路大賽,當到了愚人節這一天時,有許多人會開始套路自己身邊的朋友。那麼在2022年的愚人節有哪些新穎又好玩的套路呢?在2022年愚人節這一天有什麼套路是很好玩的?和小編一起來看看吧。2022年愚人節這一天有什麼套路是很好玩的愚人節也稱萬愚節、幽默節。愚人節,時間為4月1日,是從19...
2025-11-07
淘寶付了定金但不想買了怎麼辦
淘寶付了定金但不想買了怎麼辦
一年一度的618大促馬上就要開始了,其中淘寶是最受歡迎的電商平台,裡面有很多玩法,比如預售玩法,可以先付定金再付尾款可以便宜很多,一些小夥伴付了定金後又不想要了,那麼淘寶付了定金但不想買了怎麼辦?下面小編為大家帶來淘寶付了定金但不想買了解決方法介紹。淘寶付了定金但不想買了怎麼辦按照淘寶的說法,既然已...
2025-11-07
掠拼音 掠的拼音是什麼
掠拼音 掠的拼音是什麼
1、掠字的讀音:lüè(聲母l,韻母ue,四聲)、lüě(聲母l,韻母ue,三聲)。2、基本字義:奪取:掠奪。掠取。搶掠。劫掠。擦過:掠視。浮光掠影。拷打:掠笞。掠治。拷掠。砍伐:掠林。順手抓取:随手掠起一根棍子。3、掠過[lüèguò]傾斜地打擊表面,呈一角度向前,常伴以一個或一個以上的傾斜沖擊和...
2025-11-07
Copyright 2023-2025 - www.tftnews.com All Rights Reserved