Android 中SP與DP的區(qū)別實(shí)例詳解
從一開(kāi)始寫(xiě)Android程序,就被告知這些常識(shí)
1.長(zhǎng)度寬度的數(shù)值要使用dp作為單位放入dimens.xml文件中
2.字體大小的數(shù)值要使用sp作為單位,也放入dimens.xml文件中
然后,就沒(méi)有然后了,仿佛潛臺(tái)詞就是說(shuō),你記住去用就行了.
偶然有一天,當(dāng)我們陰差陽(yáng)錯(cuò)地將字體寫(xiě)成了dp,也是可以工作,而且效果和sp一樣.
這時(shí)候,就開(kāi)始懷疑了,到底有啥區(qū)別呢,dp和sp有什么不同呢?
我們做個(gè)簡(jiǎn)單的Sample驗(yàn)證一下,如下,一個(gè)布局代碼
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:text="Hello World! in SP" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18dp" android:text="Hello World! in DP" />
得到的效果是這個(gè)樣子
但是,當(dāng)我們進(jìn)入系統(tǒng)設(shè)置中修改字體大小時(shí)
再次進(jìn)入之前的界面,發(fā)現(xiàn)了一些不一樣的東西.
由此看來(lái)
使用sp作為字體大小單位,會(huì)隨著系統(tǒng)的字體大小改變
而dp作為單位則不會(huì).
關(guān)于sp,文檔的描述為:
Scale-independent Pixels – This is like the dp unit, but it is also scaled by the user's font size preference. It is recommend you use this unit when specifying font sizes, so they will be adjusted for both the screen density and the user's preference.
大致意思為
sp除了受屏幕密度影響外,還受到用戶(hù)的字體大小影響
通常情況下,建議使用sp來(lái)跟隨用戶(hù)字體大小設(shè)置
因此通常情況下,我們還是建議使用sp作為字體的單位,除非一些特殊的情況,不想跟隨系統(tǒng)字體變化的,可以使用dp.
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Android使用自定義字體的方法
- 解析Android中使用自定義字體的實(shí)現(xiàn)方法
- Android Back鍵點(diǎn)擊兩次退出應(yīng)用詳解及實(shí)現(xiàn)方法總結(jié)
- Android實(shí)現(xiàn)360手機(jī)助手底部的動(dòng)畫(huà)菜單
- 手把手教你用Android自定義餅狀圖
- Android獲取手機(jī)通話記錄的方法
- Android自定義控件實(shí)現(xiàn)隨手指移動(dòng)的小球
- Android Gradle Build Error:Some file crunching failed, see logs for details的快速解決方法
- Android仿新浪微博、QQ空間等帖子顯示(2)
- Android仿新浪微博、QQ空間等帖子顯示(1)
- Android APP使用自定義字體實(shí)現(xiàn)方法
相關(guān)文章
Flutter實(shí)現(xiàn)不同縮放動(dòng)畫(huà)效果詳解
這篇文章主要為大家詳細(xì)介紹了Flutter利用不同組件(ScaleTransition、SizeTransition、AnimatedSize和AnimatedBuilder)實(shí)現(xiàn)不同縮放動(dòng)畫(huà)效果,感興趣的可以動(dòng)手嘗試一下2022-06-06Android?應(yīng)用程序的啟動(dòng)流程示例詳解
這篇文章主要為大家介紹了Android?應(yīng)用程序的啟動(dòng)流程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Android NDK生成及連接靜態(tài)庫(kù)與動(dòng)態(tài)庫(kù)的方法
這篇文章主要介紹了Android NDK生成及連接靜態(tài)庫(kù)與動(dòng)態(tài)庫(kù)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08Android實(shí)現(xiàn)視頻的畫(huà)中畫(huà)功能
手機(jī)觀看視頻的時(shí)候,有些工作需要溝通,或者參與搶購(gòu)活動(dòng),同時(shí)為了不錯(cuò)過(guò)視頻精彩片段,會(huì)選擇畫(huà)中畫(huà)模式,這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)視頻的畫(huà)中畫(huà)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08Android自定義控件實(shí)現(xiàn)簡(jiǎn)單寫(xiě)字板功能
這篇文章主要介紹了Android自定義控件實(shí)現(xiàn)簡(jiǎn)單寫(xiě)字板功能的相關(guān)資料,需要的朋友可以參考下2016-04-04Android實(shí)現(xiàn)瘋狂連連看游戲之游戲效果預(yù)覽(一)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)瘋狂連連看游戲之游戲的效果預(yù)覽,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03android文件操作——讀取assets和raw文件下的內(nèi)容
本篇文章主要介紹了android文件操作——讀取assets和raw文件下的內(nèi)容,并附簡(jiǎn)單實(shí)例代碼,需要的朋友可以參考下。2016-10-10從零開(kāi)始使用gradle配置即可執(zhí)行的Hook庫(kù)詳解
這篇文章主要為大家介紹了從零開(kāi)始使用gradle配置即可執(zhí)行的Hook庫(kù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Android入門(mén)之使用eclipse進(jìn)行源碼開(kāi)發(fā)的方法
這篇文章主要介紹了Android入門(mén)之使用eclipse進(jìn)行源碼開(kāi)發(fā)的方法,較為詳細(xì)的分析了使用eclipse進(jìn)行Android源碼開(kāi)發(fā)的具體步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-02-02