android drawable目錄

https://blog.csdn.net/guolin_blog/article/details/50727753

 

https://blog.csdn.net/zhaokaiqiang1992/article/details/49787117

 

基本概念:

1. px: 分辨率單位像素

        平常所說的1920×1080只是像素數量,也就是1920px × 1080px,代表手機高度上有1920個像素點,寬度上有1080個像素點。

2. dpi: 像素密度單位,表示1英寸上有多少個像素     px/inc

         160dpi表示1英寸上有160個像素    160dpi = 160px/inc

         240dpi表示1英寸上有240個像素     240dpi = 240px/inc

       設備dpi越高,即1英寸含有的像素點越多,顯示效果越好

2.dp:在定義 UI 佈局時應使用的虛擬像素單位,用於以密度無關方式表示佈局維度 或位置

 

在android api中

1.densityDpi:這個對應dpi(像素密度單位)     單位: px /inc

2.density:顯示的邏輯密度,這是密度獨立像素單位 ,表示1個虛擬像素對應多少個屏幕像素px  

             即1dp 對應 幾個px     ---------  單位: px /dp

 3.虛擬像素單位: 官方規定 1英寸有160個虛擬像素    160dp/inc

下面推導px和dp之間的關係

  假設 像素密度densityDpi  = 240(1英寸含有240個像素, 即240px/inc ),

因爲官方規定 1英寸有160個虛擬像素 ( 160dp/inc ),

所以1英寸中,160dp對應240px(即 1dp = 1.5px),即 density = 240px/160dp  = 1.5 px /dp

所以 density = densityDpi / 160 px/dp   --- 1dp 對應 density個屏幕像素px

所以  1dp = density 個 px

        3dp = 3 * density  個px 

       a個dp   = a* density 個px   = a * densityDpi / 160  個px  --------這就是dp 和px 之間的關係

--------------------------------------------------------------------

當 densityDpi = 160

1英寸中,160dp對應160px(即 1dp = 1px),即dp 和px等價

 

將分辨率轉換成虛擬像素表示

1.   dip = 160  ,  320 x 480 px  轉換成dp 表示

     首先計算出 density = 160 / 160 px/dp ,  1dp 對應1個px

    設 320px 對應 a 個dp  , 所以 a =  320 /dendity  = 320 dp

   同理得高 480dp

 所以 在dip = 160, 320 x 480 px 轉換成dp 表示  320dp x 480dp

 

1.   dip = 240  ,  320 x 480 px  轉換成dp 表示

     首先計算出 density = 240 / 160 px/dp ,  1dp 對應1.5個px

    設 320px 對應 a 個dp  , 所以 a =  320 /dendity  = 233dp

   同理得高 320dp

 所以 在dip = 240, 320 x 480 px 轉換成dp 表示  233dp x 320dp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章