編輯:關於Android編程
從一開始寫Android程序,就被告知這些常識
1.長度寬度的數值要使用dp作為單位放入dimens.xml文件中
2.字體大小的數值要使用sp作為單位,也放入dimens.xml文件中
然後,就沒有然後了,仿佛潛台詞就是說,你記住去用就行了.
偶然有一天,當我們陰差陽錯地將字體寫成了dp,也是可以工作,而且效果和sp一樣.
這時候,就開始懷疑了,到底有啥區別呢,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" />
得到的效果是這個樣子
但是,當我們進入系統設置中修改字體大小時
再次進入之前的界面,發現了一些不一樣的東西.
由此看來
使用sp作為字體大小單位,會隨著系統的字體大小改變
而dp作為單位則不會.
關於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來跟隨用戶字體大小設置
因此通常情況下,我們還是建議使用sp作為字體的單位,除非一些特殊的情況,不想跟隨系統字體變化的,可以使用dp.
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
一、第一種方法: (1)Fragment的第一種使用方法是使用fragment加載單獨的布局文件:(也就是xml的方式實現) 結構如下: activity_main.
AppBarLayout 是繼承LinerLayout實現的一個ViewGroup容器組件,它是為了Material Design設計的App Bar,支持手勢滑動操作的
啟動模式:LaunchMode在多個Activity跳轉的過程中扮演著重要的角色,它可以決定是否生成新的Activity實例,是否重用已存在的Activity實例,是否和
EditText和AutoCompleteTextView設置文字選中顏色 大多數Android Rom上,文本選擇的背景色都是很好看的鮮綠色, 但是在某些垃圾的三星手機