您好,登錄后才能下訂單哦!
一、介紹
dip:設備獨立像素(Device independent pixel),一個基于density的抽象單位;
dp:在早期的Android版本里多使用dip,后來為了與sp統一就建議使用dp這個名字;
px:像素(Pixel),1px代表屏幕上一個物理的像素點,px單位不被建議使用,因為同樣1px,在不同手機上顯示的實際大小可能不同,偶爾用到px的情況是需要畫1像素表格線或畫一條細的分隔線的時候,用其他單位如dp會顯得模糊;
sp:與縮放無關的抽象像素(Scale-independent Pixel),sp和dp很類似但唯一的區別是,Android系統允許用戶在系統設定里自定義文字尺寸大小(小、正常、大、超大等等),當文字尺寸設置“正常”時1sp=1dp=0.00625英寸,而當文字尺寸設置“大”或“超大”時,1sp>1dp=0.00625英寸;
dpi:每英寸多少個像素點(Dots per inch ),常見取值 120,160,240 像素密度,簡稱密度;
density:密度。常見取值 1.5 , 1.0 。和標準dpi的比例(160px/inc)
分辨率:橫縱2個方向的像素點的數量,常見取值 480X800 ,320X480
屏幕尺寸:屏幕對角線的長度。電腦電視同理。
二、換算
dip = (dpi/160)*pixel.(所以dip可能比像素更大或更小)
/** * dp 的單位 轉成為 px(像素) * * @param context * @param dpValue * @return */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 從 px(像素) 的單位 轉成為 dp * * @param context * @param pxValue * @return */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); }
Android中,
在160dpi (mdpi)中, 1 dip = 1 px;
在120dpi(ldpi)中, 1 dip = 0.75px;
在240dpi (hdpi)中, 1 dip = 1.5px;
在320dpi(xhdpi)中,1dip = 2px;
三、Android中的適配
在如下目錄中分別對應各個分辨率的,即可做到不同手機的適配
我是用下面的工具來看美工的圖的,截圖如下,可以切換不同的分辨率
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。