Android_基礎之分辨率


常見屏幕分辨率對應尺寸

標屏 分辨率 比例 寬屏 分辨率 比例
QCIF 176X144 11:9      
CIF 352X288 11:9      
QVGA 320X240 4:3 WQVGA 400X240 5:3
HVGA 480X320 3:2      
VGA   640X480  4:3 WVGA  800X480   5:3
qHD   960X540  16:9      
HD/720P  1280X720   16:9      
HD+ 1600X900 16:9      
FHD/1080P   1920X1080  16:9      
FHD+  2160X1440   16:9      
 QHD 2560X1440   16:9      

 

 基本概念

屏幕大小:屏幕對焦線的長度,單位是英寸(inch)。

分辨率:上述表格分辨率是屏幕的高和寬的像素點數。如320x240,即高320個像素點 寬240個像素點。

屏幕密度(實際物理dpi):dpi(dots per inch), 即每英寸上的像素點數目。如屏幕大小是4,分辨率是320x240,則屏幕密度是 (√(3202+2402))/4 = 100。

系統密度(系統dpi):density, 系統中配置的 默認的固定的密度。

下面是系統密度的信息,mdpi(160)作為基准:

  ldpi mdpi hdpi xhdpi xxhdpi
系統密度 120 160 240 320 480
代表分辨率 240x320 320x480 480x800 720x1280 1080x1920
基准比例 0.75 1 1.5 2 3

 

各個單位的關系:dp,  px, sp

dp布局中常用的單位,px即像素點,sp常用於字體大小。 

 dp與px

 dp與px轉換是基於系統密度的。以mdpi,160為基准的,如1dp在320x480設備上,1dp=1px; 在480x800上1dp=1.5px。

系統密度在系統中配置的屬性是ro.sf.lcd_density,通過下面代碼獲取

Log.d( TAG, "density="+getResources().getDisplayMetrics().density
            +";densityDpi="+getResources().getDisplayMetrics().densityDpi);

執行的手機(ro.sf.lcd_density=240,480x960)得到的結果

2019-09-29 10:27:52.432 5521-5521/com.flx.testfilestorage D/flx_storage: density=1.5;densityDpi=240

所以 1dp=densitypx 或者 1dp = (densityDpi/160)px

 sp與px:

 Android設計原則 字體尺寸使用sp,非字體尺寸使用dp。 當標准(默認)字體時,1sp=1px。

所以標准(默認)字體情況下,sp轉px和dp一樣,1sp=densitypx 或者 1sp = (densityDpi/160)px。

默認設置中幾種字體尺寸可選擇的變化值 如下(不同手機廠商可能會修改,所以不同手機可能不同):

<item>0.85</item>   //小
<item>1.0</item>   //默認
<item>1.15</item>   //大
<item>1.30</item>   //最大

  

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM