手机屏幕像素密度是dp与px的换算进制,相当于1dp等于多少px。由于没有手机不同,像素密度也是不一样的,所以我们需要用代码的方式获取当前手机的像素密度。
像素密度的获取方法如下:
public static float getScreenDensity(Context ctx){
//从系统服务中获取窗口管理器
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
//从默认显示器中获取显示参数保存到dm对象中
wm.getDefaultDisplay().getMetrics(dm);
return dm.density;//返回屏幕的像素密度数值
}
这样就可以获取到像素密度,进一步进行dp和px的转化。另外我有一篇专门的博客讲解dp,sp,px之间的相互转化问题,也可以借鉴。