• Android开发中常用单位转换的工具类


    public class DensityUtils {
        private DensityUtils() {
    
        }
        /**
         * 将px值转换为dip或dp值,保证尺寸大小不变
         *
         */
        public static int px2dip(Context context, float pxValue) {
            final float scale = context.getResources().getDisplayMetrics().density;
            return (int) (pxValue / scale + 0.5f);
        }
        /**
         * 将dip或dp值转换为px值,保证尺寸大小不变
         */
        public static int dip2px(Context context, float dipValue) {
            final float scale = context.getResources().getDisplayMetrics().density;
            return (int) (dipValue * scale + 0.5f);
        }
    
    
        /*
         * 获取设备的屏幕高度(px)
         * */
        public  static int getScreenHeightPx(Context context){
            WindowManager windowManager= (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
            Display display=windowManager.getDefaultDisplay();
            DisplayMetrics metrics=new DisplayMetrics();
            display.getMetrics(metrics);
            return metrics.heightPixels;
        }
        /*
         * 获取设备的屏幕高度(dp)
         * */
        public  static int getScreenHeightDp(Context context){
            return px2dip(context,getScreenHeightPx(context));
        }
    
        /*
         * 获取设备的屏幕宽度(px)
         * */
        public static int getScreenWidthPx(Context context){
            WindowManager windowManager= (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
            Display display=windowManager.getDefaultDisplay();
            DisplayMetrics metrics=new DisplayMetrics();
            display.getMetrics(metrics);
            return metrics.widthPixels;
        }
        /*
         * 获取设备的屏幕宽度(dp)
         * */
        public  static int getScreenWidthDp(Context context){
            return px2dip(context,getScreenWidthPx(context));
        }
        /**
         * dp转px
         *
         * @param context
         * @return
         */
        public static int dp2px(Context context, float dpVal) {
            return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpVal, context.getResources()
                    .getDisplayMetrics());
        }
    
        /**
         * sp转px
         *
         * @param context
         * @return
         */
        public static int sp2px(Context context, float spVal) {
    //        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spVal, context.getResources()
    //                .getDisplayMetrics());
            final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
            return (int) (spVal * fontScale + 0.5f);
        }
    
        /**
         * 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 pxVal
         * @return
         */
        public static float px2sp(Context context, float pxVal) {
            return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);
        }
        /**
         * 得到屏幕宽度
         *
         * @param context
         * @return
         */
        public static int getDisplayWidth(Context context) {
            return context.getResources().getDisplayMetrics().widthPixels;
        }
    
        /**
         * 得到屏幕高度
         *
         * @param context
         * @return
         */
        public static int getDisplayHeight(Context context) {
            return context.getResources().getDisplayMetrics().heightPixels;
        }
    }
  • 相关阅读:
    Bean 作用域和生命周期
    C++ vector使用方法
    Modbus转Profinet网关在污水处理系统中连接PLC和变频器Modbus通信案例
    HTML5 Canvas API制作一个简单的猜字单机游戏
    CSS-表格独有属性
    【MATLAB源码-第69期】基于matlab的LDPC码,turbo码,卷积码误码率对比,码率均为1/3,BPSK调制。
    web网页渗透测试
    Docker设置开机自启动
    ES6和CommonJS导入导出语法区别
    自动化脚本一键安装 jdk,hadoop,hive
  • 原文地址:https://blog.csdn.net/qq_36451275/article/details/134434346