Android-[转载]TypedValue.applyDimension中dp和sp之间转化的真相

转载自:http://www.cnblogs.com/xilinch/p/4444833.html

最近在看了许多关于dp-px,px-dp,sp-px,px-sp之间转化的博文,过去我比较常用的方式是:

1
2
3
4
5
6
7
8
9
10
11
//转换dip为px 
public static int convertDipOrPx(Context context, int dip) {
float scale = context.getResources().getDisplayMetrics().density;
return (int)(dip*scale + 0.5f*(dip>=0?1:-1));
}

//转换px为dip
public static int convertPxOrDip(Context context, int px) {
float scale = context.getResources().getDisplayMetrics().density;
return (int)(px/scale + 0.5f*(px>=0?1:-1));
}