Android單位轉換類 DensityUtils

ed6y 9年前發布 | 2K 次閱讀 Java 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);
      }

} </pre>

 本文由用戶 ed6y 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!