为了做到屏幕适配,有时候就需要做px,dp,sp之间的转化,下面就提供一个这样的类来解决这个问题。话不多说,直接看代码。
DisplayUtil.java
import android.content.Context;
public class DisplayUtil {
public static int dp2px(Context context, float dp) {
float density = context.getResources().getDisplayMetrics().density;
return (int)(dp*density + 0.5f);
}
public static int px2dp(Context context, float px) {
float density = context.getResources().getDisplayMetrics().density;
return (int) (px/density + 0.5f);
}
public static int sp2px(Context context, float sp) {
float density = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (sp*density + 0.5f);
}
public static int px2sp(Context context, float px) {
float density = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (px/density + 0.5f);
}
}