当前位置:   article > 正文

Android的计量单位px/dip/dp/sp/pt/in/mm,及相互转换_android dp和mm换算

android dp和mm换算

px   :原始像素点(raw Pixel)。
dip  :设备独立点(Device Independent Pixel),会根据屏幕的密度(density)进行缩放。
dp   :同dip,是其简写。
sp   :缩放像素点(Scaled Pixel),会根据用户选择的字体大小(scaledDensity)进行缩放。

pt    :磅(Point),英寸的1/72。

in    :英寸(Inch)。

mm :毫米(Millimeter)。

建议:文字尺寸使用sp,其他尺寸使用dp

PPI = Pixels per inch,每英寸上的像素数,即 "像素密度"

  • xhdpi: 2.0
  • hdpi: 1.5
  • mdpi: 1.0 (baseline) 160
  • ldpi: 0.75
dp和px的换算公式 dp*ppi = px。比如xhdpi,1dp x 2ppi = 2px。
sppx的换算公式 :sp*ppi = px。

  1. //android.util.TypedValue
  2.     /**  complex unit: Value is raw pixels. */
  3.     public static final int COMPLEX_UNIT_PX = 0;
  4.     /**  complex unit: Value is Device Independent Pixels. */
  5.     public static final int COMPLEX_UNIT_DIP = 1;
  6.     /**  complex unit: Value is a scaled pixel. */
  7.     public static final int COMPLEX_UNIT_SP = 2;
  8.     /**  complex unit: Value is in points. */
  9.     public static final int COMPLEX_UNIT_PT = 3;
  10.     /**  complex unit: Value is in inches. */
  11.     public static final int COMPLEX_UNIT_IN = 4;
  12.     /**  complex unit: Value is in millimeters. */
  13.     public static final int COMPLEX_UNIT_MM = 5;
  14. /**
  15. * Converts an unpacked complex data value holding a dimension to its final
  16. * floating point value. The two parameters unit and value are as in dimension.
  17. *
  18. * @param unit The unit to convert from.
  19. * @param value The value to apply the unit to.
  20. * @param metrics Current display metrics to use in the conversion --
  21. * supplies display density and scaling information.
  22. *
  23. * @return The complex floating point value multiplied by the appropriate
  24. * metrics depending on its unit.
  25. */
  26. public static float applyDimension(int unit, float value,
  27. DisplayMetrics metrics)
  28. {
  29. switch (unit) {
  30. case COMPLEX_UNIT_PX: //原始像素点
  31. return value;
  32. case COMPLEX_UNIT_DIP: //设备独立点
  33. return value * metrics.density;
  34. case COMPLEX_UNIT_SP: //缩放像素点
  35. return value * metrics.scaledDensity;
  36. case COMPLEX_UNIT_PT: //英磅
  37. return value * metrics.xdpi * (1.0f/72);
  38. case COMPLEX_UNIT_IN: //英寸
  39. return value * metrics.xdpi;
  40. case COMPLEX_UNIT_MM: //毫米
  41. return value * metrics.xdpi * (1.0f/25.4f);
  42. }
  43. return 0;
  44. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/984686
推荐阅读
相关标签
  

闽ICP备14008679号