一、px
像素,我們經常說的400*800這種的就是像素,這個比較好理解。
二、dp
要理解dp,首先要先引入dpi這個概念,dpi全稱是dots per inch,對角線每英寸的像素點的個數,所以,它的計算公式如下:
比如height和width即為長寬的像素,平方和即為對角線的像素個數,size即我們常說的5寸手機、4寸手機中的5和4,即對角線的長度。
顯然,一樣是5寸的手機,分辨率越高,dpi越高。
dp也叫dip,是device independent pixels。設備不依賴像素的一個單位。
定義在dpi=160的設備上的1px=1dp,所以px和dp的轉換公式為:px = dp * (dpi/160)
這樣一來,如圖2-1,用了像素的單位之后,在不同的設備顯示出了不同的效果;在圖2-2中,用了dp作為單位之后,dp相同之后,在不同的設備里面,轉成px之后是相等的,所以就不會出現圖2-1的情況。(圖片來源:http://study.163.com/course/courseLearn.htm?courseId=207001#/learn/video?lessonId=368070&courseId=207001)
圖2-1:
圖2-2:
三、sp
全稱是scaled pixels。這個主要是用於項目中的字體大小。使用sp作為單位,當用戶通過手機設置修改手機字體的時候,sp為單位的字體也會跟着改變。
總結:Android項目中的控件大小主要是使用dp作為單位,字體大小主要是用sp作為單位。