Android dp2px等工具类的系统写法
Posted aikongmeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android dp2px等工具类的系统写法相关的知识,希望对你有一定的参考价值。
以往都是自己封装工具类,然而android 系统已经写过,拿来主义。
核心还是转换公式
package android.util;
TypedValue.java
public static float applyDimension(@ComplexDimensionUnit int unit, float value,
DisplayMetrics metrics)
switch (unit)
case COMPLEX_UNIT_PX:
return value;
case COMPLEX_UNIT_DIP:
return value * metrics.density;
case COMPLEX_UNIT_SP:
return value * metrics.scaledDensity;
case COMPLEX_UNIT_PT:
return value * metrics.xdpi * (1.0f/72);
case COMPLEX_UNIT_IN:
return value * metrics.xdpi;
case COMPLEX_UNIT_MM:
return value * metrics.xdpi * (1.0f/25.4f);
return 0;
封装使用
ViewUtils
package com.google.android.material.internal;
public class ViewUtils
...
public static float dpToPx(@NonNull Context context, @Dimension(unit = Dimension.DP) int dp)
Resources r = context.getResources();
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, r.getDisplayMetrics());
以上是关于Android dp2px等工具类的系统写法的主要内容,如果未能解决你的问题,请参考以下文章