Android常用单位转换的辅助类详解编程语言

    import android.content.Context;   
    import android.util.TypedValue;   
       
    //常用单位转换的辅助类   
    public class DensityUtils   
    {   
        private DensityUtils()   
        {   
            /* cannot be instantiated */   
            throw new UnsupportedOperationException("cannot be instantiated");   
        }   
       
        /**  
         * dp转px  
         *   
         * @param context  
         * @param val  
         * @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  
         * @param val  
         * @return  
         */   
        public static int sp2px(Context context, float spVal)   
        {   
            return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,   
                    spVal, context.getResources().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 fontScale  
         * @param pxVal  
         * @return  
         */   
        public static float px2sp(Context context, float pxVal)   
        {   
            return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);   
        }   
       
    }  

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/11017.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论