1、通用写法:
/** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dp2px(Context context, float dp) { //获取设备密度 float density = context.getResources().getDisplayMetrics().density; //4.3, 4.9, 加0.5是为了四舍五入 int px = (int) (dp * density + 0.5f); return px; } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ public static float px2dp(Context context, int px) { //获取设备密度 float density = context.getResources().getDisplayMetrics().density; float dp = px / density; return dp; }
public static float sp2px(Resources resources, float sp) { final float scale = resources.getDisplayMetrics().scaledDensity; return sp * scale; }https://www.cnblogs.com/xilinch/p/4444833.html