我們的UI基於1920x1080分辨率給的尺寸標注,但是在安卓開發中大家一般都使用dp、sp來標注界面尺寸,所以需要一個dp與sp的轉換公式。
一開始參考的的這篇文章:關於Android開發中px、dip、dp、sp等單位的概念和轉換關系(http://blog.csdn.net/watt520/article/details/9667079)
public static int dip2px(Context mContext, float dp) {
float scale = mContext.getResources().getDisplayMetrics().density;
return (int) (dp * scale + 0.5f);
}
public static int px2dip(Context mContext, float px) {
float scale = mContext.getResources().getDisplayMetrics().density;
return (int) (px / scale + 0.5f);
}
對於dp和sp都用一樣的公式,算出來的像素與dp之間的比例2.625,修改界面尺寸之后發現整體比效果出大了不少,有10%以上的差距。
后來找到了如下這張不同分辨率下的px與dp轉換關系對照表,那么我們的1920x1080分辨率對應的比例就是3,使用該比例之后發現和效果圖基本一致,完美。

—————完—————
