在android中定義視圖時,我們使用dp作爲邊距,大小等,但是我們使用sp的文本大小。 sp也與dp相同,但對於文本。那麼爲什麼我們不能使用sp? 我知道兩者之間的區別。我在問sp是否是dp的超集,爲什麼要使用dp?爲什麼不使用sp來指定視圖中的所有大小?爲什麼不使用sp而不是dp?
0
A
回答
1
dp 密度獨立像素 - 基於屏幕物理密度的抽象單位。這些單位相對於160 dpi屏幕,所以一個dp是160 dpi屏幕上的一個像素。 dp與像素的比率將隨着屏幕密度而變化,但不一定成正比。注意:編譯器同時接受「dip」和「dp」,但「dp」與「sp」更加一致。
sp- 與刻度無關的像素 - 這就像dp單元,但它也會根據用戶的字體大小偏好進行縮放。建議您在指定字體大小時使用本機,以便根據屏幕密度和用戶偏好進行調整。
參見Density Independence in android和Supporting Multiple Screens
2
測量的SP單元用於字體和是像素 密度依賴性以完全相同的方式,dp爲。根據您使用的sp值,決定字體大小的 Android設備將會考慮的額外計算爲 是用戶自己的字體大小設置。因此,如果您在具有普通大小字體的設備和模擬器上測試 您的應用程序,那麼具有 視力障礙(或者只是喜歡大字體)並且字體設置較大的用戶將看到 與您看到的有所不同在測試期間。
0
我們無法使用sp的原因是,當我們從設置中增加字體大小時,我們只想調整文本的大小,而不是按鈕和其他視圖。因此,我們使用dp作爲其餘部分,並僅用於文本。
相關問題
- 1. 什麼時候應該在佈局中使用dp或sp?
- 2. 爲什麼使用HTML而不是HAML?
- 3. 爲什麼,而不是使用回調
- 4. 爲什麼使用classmethod而不是staticmethod?
- 5. 爲什麼使用TCPDF而不是mpdf
- 6. 爲什麼使用leal而不是incq?
- 7. 爲什麼使用iconv_strpos而不是strpos?
- 8. 爲什麼使用s:Line而不是mx:HRule?
- 9. 爲什麼使用uImage而不是zImage
- 10. 爲什麼使用DataSource而不是XADataSource?
- 11. 爲什麼使用char []而不是String?
- 12. 爲什麼使用結構,而不是
- 13. 爲什麼使用registerDefaults:而不是setValue:forKey:?
- 14. 爲什麼使用追加()而不是+
- 15. 爲什麼使用Number.parseInt而不是parseInt()?
- 16. 爲什麼使用TagBuilder而不是StringBuilder?
- 17. Android不使用XML指定像素單位(如sp,px,dp)
- 18. 在繪圖中使用「dp」和「sp」
- 19. 爲什麼說零而不是停用?
- 20. 是什麼,而不
- 21. 什麼是該SP
- 22. 爲什麼我不能使用指針而不是malloc
- 23. 爲什麼我們不使用lite-server而不是Gulp?
- 24. 爲什麼不使用開發配置而不是ad hoc?
- 25. 爲什麼我們不使用Repeater Control而不是Gridview Control?
- 26. 爲什麼我不能使用JavaScript過期Cookie(而不是HttpOnly)
- 27. 爲什麼我不能使用[HttpPost]而不是[HttpPost(「[action]」)]?
- 28. 爲什麼不能使用property而不是__construct?
- 29. 爲什麼我不能使用Set:union()而不是Set.union?
- 30. 爲什麼不使用ResourceBundle而不是Properties?
可能的重複http://stackoverflow.com/questions/2025282/what-is-the-difference-between-px-dp-dip-and-sp-on-android。 –
看到我的回答http://stackoverflow.com/a/40717863/6893465看到不同的屏幕大小的差異.. –