package ml.puredark.hviewer.utils; import android.content.Context; import android.util.DisplayMetrics; import android.util.TypedValue; /** * 常用单位转换的辅助类 */ public class DensityUtil { private DensityUtil() { /** cannot be instantiated **/ throw new UnsupportedOperationException("cannot be instantiated"); } public static int getScreenWidth(Context context) { DisplayMetrics dm = context.getResources().getDisplayMetrics(); int screenWidth = dm.widthPixels; return screenWidth; } public static int getScreenHeight(Context context) { DisplayMetrics dm = context.getResources().getDisplayMetrics(); int screenHeight = dm.heightPixels; return screenHeight; } /** * dp转px * * @param context * @param dpVal * @return */ public static int dp2px(Context context, float dpVal) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpVal, context.getResources().getDisplayMetrics()); // Resources.getSystem().getDisplayMetrics(); } /** * sp转px * * @param context * @param spVal * @return */ public static int sp2px(Context context, float spVal) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spVal, context.getResources().getDisplayMetrics()); // Resources.getSystem().getDisplayMetrics(); } /** * px转dp * * @param context * @param pxVal * @return */ public static float px2dp(Context context, float pxVal) { final float scale = context.getResources().getDisplayMetrics().density; return (pxVal / scale); } /** * px转sp * * @param context * @param pxVal * @return */ public static float px2sp(Context context, float pxVal) { return (pxVal / context.getResources().getDisplayMetrics().scaledDensity); } }