import android.content.Context; import android.util.DisplayMetrics; import android.view.WindowManager; /** * Created by LZC on 2018/1/9. */ public class DensityUtil { private static int screenWidth = 0; private static int screenHeight = 0; private static float density = 0; /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } public static int sp2px(Context context, float spValue) { float scale = context.getResources().getDisplayMetrics().scaledDensity; return (int)(spValue * scale + 0.5F); } public static int px2sp(Context context, float pxValue) { float scale = context.getResources().getDisplayMetrics().scaledDensity; return (int)(pxValue / scale + 0.5F); } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } public static int getWindowWidth(Context context) { if (screenWidth != 0) return screenWidth; initWidHeight(context); return screenWidth; } public static int getWindowHeight(Context context) { if (screenHeight != 0) return screenHeight; initWidHeight(context); return screenHeight; } private static void initWidHeight(Context context) { WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics dm = new DisplayMetrics(); //获取屏幕信息 manager.getDefaultDisplay().getMetrics(dm); screenWidth = dm.widthPixels; screenHeight = dm.heightPixels; density = dm.density; } public static float getDensity(Context context){ if (density != 0) return density; initWidHeight(context); return density; } }
android dp ,sp,px转换工具类,拿来即用(包括测量屏幕宽高)
猜你喜欢
转载自blog.csdn.net/LZC__/article/details/80084133
今日推荐
周排行