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等工具类的系统写法的主要内容,如果未能解决你的问题,请参考以下文章

Android dp2px等工具类的系统写法

Android dp2px等工具类的系统写法

注入式类的写法,解耦,组件式开发,沙箱

DataBinding xml中的写法大全

Android 获取手机的厂商型号Android系统版本号IMEI当前系统语言等工具类

8种单例模式写法助你搞定面试