標籤:
常用單位轉換的輔助類:
1、dp 轉 px;
2、sp 轉 px;
3、px 轉 dp;
4、px 轉 sp。
1 import android.content.Context; 2 import android.util.TypedValue; 3 4 // 常用單位轉換的輔助類 5 public class DensityUtils 6 { 7 private DensityUtils() 8 { 9 /* cannot be instantiated */10 throw new UnsupportedOperationException("cannot be instantiated");11 }12 13 /**14 * dp 轉 px15 * 16 * @param context17 * @param val18 * @return19 */20 public static int dp2px(Context context, float dpVal)21 {22 return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,23 dpVal, context.getResources().getDisplayMetrics());24 }25 26 /**27 * sp 轉 px28 * 29 * @param context30 * @param val31 * @return32 */33 public static int sp2px(Context context, float spVal)34 {35 return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,36 spVal, context.getResources().getDisplayMetrics());37 }38 39 /**40 * px 轉 dp41 * 42 * @param context43 * @param pxVal44 * @return45 */46 public static float px2dp(Context context, float pxVal)47 {48 final float scale = context.getResources().getDisplayMetrics().density;49 return (pxVal / scale);50 }51 52 /**53 * px 轉 sp54 * 55 * @param fontScale56 * @param pxVal57 * @return58 */59 public static float px2sp(Context context, float pxVal)60 {61 return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);62 }63 64 }
Android 開發工具類 02_DensityUtils