2016-11-21 63 views
0

在android中定義視圖時,我們使用dp作爲邊距,大小等,但是我們使用sp的文本大小。 sp也與dp相同,但對於文本。那麼爲什麼我們不能使用sp? 我知道兩者之間的區別。我在問sp是否是dp的超集,爲什麼要使用dp?爲什麼不使用sp來指定視圖中的所有大小?爲什麼不使用sp而不是dp?

+5

可能的重複http://stackoverflow.com/questions/2025282/what-is-the-difference-between-px-dp-dip-and-sp-on-android。 –

+0

看到我的回答http://stackoverflow.com/a/40717863/6893465看到不同的屏幕大小的差異.. –

回答

1

dp 密度獨立像素 - 基於屏幕物理密度的抽象單位。這些單位相對於160 dpi屏幕,所以一個dp是160 dpi屏幕上的一個像素。 dp與像素的比率將隨着屏幕密度而變化,但不一定成正比。注意:編譯器同時接受「dip」和「dp」,但「dp」與「sp」更加一致。

sp- 與刻度無關的像素 - 這就像dp單元,但它也會根據用戶的字體大小偏好進行縮放。建議您在指定字體大小時使用本機,以便根據屏幕密度和用戶偏好進行調整。

參見Density Independence in androidSupporting Multiple Screens

2

測量的SP單元用於字體和是像素 密度依賴性以完全相同的方式,dp爲。根據您使用的sp值,決定字體大小的 Android設備將會考慮的額外計算爲 是用戶自己的字體大小設置。因此,如果您在具有普通大小字體的設備和模擬器上測試 您的應用程序,那麼具有 視力障礙(或者只是喜歡大字體)並且字體設置較大的用戶將看到 與您看到的有所不同在測試期間。

0

我們無法使用sp的原因是,當我們從設置中增加字體大小時,我們只想調整文本的大小,而不是按鈕和其他視圖。因此,我們使用dp作爲其餘部分,並僅用於文本。

相關問題