px (pixels)像素 – 是像素,就是屏幕上实际的像素点单位。
dip或dp (device independent pixels)设备独立像素, 与设备屏幕有关。
dpi(dot per inch):屏幕像素密度,每英寸多少像素
换算公式:px = dip * (dpi / 160)
DisplayMetrics中的density = dpi / 160
DisplayMetrics中的densityDpi就是dpi
/**
*
* Date:2014-7-22 </br> Desc:dip换算为px
*
* </br>
*
* @param ctx
* @param dpValue
* @return
*/
private int dip2px(Context ctx, float dpValue) {
return (int) (dpValue * ctx.getResources().getDisplayMetrics().density + 0.5f);
}
/**
*
* Date:2014-7-22 </br> Desc:px换算为dip
*
* </br>
*
* @param ctx
* @param pxValue
* @return
*/
private float px2dip(Context ctx, int pxValue) {
return ((float) pxValue * 160)
/ ctx.getResources().getDisplayMetrics().densityDpi;
// 或者
// return pxValue / ctx.getResources().getDisplayMetrics().density;
}