content: package com.jingewenku.abrahamcaijin.commonutil;
  
  import android.content.Context;
  import android.util.TypedValue;
  
  /**
   * @Description:主要功能:常用单位转换的辅助类
   * @Prject: CommonUtilLibrary
   * @Package: com.jingewenku.abrahamcaijin.commonutil
   * @author: AbrahamCaiJin
   * @date: 2017年05月16日 15:29
   * @Copyright: 个人版权所有
   * @Company:
   * @version: 1.0.0
   */
  
  public class DensityUtils {
  
      private DensityUtils() {
          throw new UnsupportedOperationException("cannot be instantiated");
      }
  
      /**
       * 根据手机的分辨率从 dip 的单位 转成为 px(像素)
       */
      public static int dip2px(Context context, float dpValue) {
          final float scale = context.getResources().getDisplayMetrics().density;
          return (int) (dpValue * 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);
      }
      /**
       * 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());
      }
  
      /**
       * 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());
      }
  
      /**
       * 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
       * @param pxVal
       * @return
       */
      public static float px2sp(Context context, float pxVal)
      {
          return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);
      }
  
  }
  