亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

簡單談?wù)凙ndroid中SP與DP的區(qū)別

 更新時間:2016年09月12日 09:04:39   作者:技術(shù)小黑屋  
Android里面的sp和dp網(wǎng)上有很多文章都談過了,但是看后總有一種意猶未盡的感覺?,F(xiàn)在我也來談?wù)刣p和sp,和大家交流一下,不對之處歡迎拍磚。

從一開始寫Android程序,就被告知這些常識

一、dp(或者dip device independent pixels)

一種基于屏幕密度的抽象單位。在每英寸160點的顯示器上,1dp=1px。不同設(shè)備有不同的顯示效果,這個和設(shè)備硬件有關(guān)。

二、sp(Scaled Pixels)

主要用于字體顯示,與刻度無關(guān)的一種像素,與dp類似,但是可以根據(jù)用戶的字體大小首選項進(jìn)行縮放。

簡單的說

  • 長度寬度的數(shù)值要使用dp作為單位放入dimens.xml文件中
  • 字體大小的數(shù)值要使用sp作為單位,也放入dimens.xml文件中

然后,就沒有然后了,仿佛潛臺詞就是說,你記住去用就行了.

偶然有一天,當(dāng)我們陰差陽錯地將字體寫成了dp,也是可以工作,而且效果和sp一樣.

這時候,就開始懷疑了,到底有啥區(qū)別呢,dp和sp有什么不同呢?

我們做個簡單的Sample驗證一下,如下,一個布局代碼

<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"
    />

得到的效果是這個樣子

但是,當(dāng)我們進(jìn)入系統(tǒng)設(shè)置中修改字體大小時

再次進(jìn)入之前的界面,發(fā)現(xiàn)了一些不一樣的東西.

由此看來

  • 使用sp作為字體大小單位,會隨著系統(tǒng)的字體大小改變
  • 而dp作為單位則不會.

關(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除了受屏幕密度影響外,還受到用戶的字體大小影響
  • 通常情況下,建議使用sp來跟隨用戶字體大小設(shè)置

因此通常情況下,我們還是建議使用sp作為字體的單位,除非一些特殊的情況,不想跟隨系統(tǒng)字體變化的,可以使用dp.

相關(guān)文章

最新評論