获取分辨率及dp/px换算

DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels;  // 屏幕宽度(像素)
int height = metric.heightPixels;  // 屏幕高度(像素)
float density = metric.density;  // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)

120dpi(ldpi低密度屏)       1dp = 0.75px        (由于像素点是物理点,所以用2个像素点来显示3个dp的内容)

160dpi(mdpi中密度屏)     1dp = 1px

213dpi(tvdpi电视密度屏)  1dp = 1.33px

240dpi(hdpi高密度屏)      1dp = 1.5px

320dpi(xhdpi极高密度屏)   1dp = 2px

由上述分析结果可知,控件使用dp,文字使用sp即可满足自适应的需求。

参考:

http://www.cnblogs.com/see2851/archive/2011/11/28/2266642.html

http://www.cnblogs.com/zealotrouge/archive/2012/11/23/2784774.html

原文地址:https://www.cnblogs.com/Miami/p/4223918.html