• 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;
        }
    }
  • 相关阅读:
    chatgpt 优秀项目
    测试右移:线上质量监控 ELK 实战
    01.VS2010 32位和64位WDK环境设置 2种方法
    信息学奥赛初赛天天练-89-CSP-S2023基础题1-linux常用命令、完全平方数、稀疏图、队列、散列表、二叉树、哈夫曼树
    (论文阅读51-57)图像描述3 53
    阿里云3M固定带宽服务器速度快吗?是否够用?
    使用打表法找规律
    清华学霸告诉你:如何自学人工智能?
    【Linux】进程(6):环境变量
    Elasticsearch 日期数据类型
  • 原文地址:https://blog.csdn.net/qq_36451275/article/details/134434346