当前位置:   article > 正文

在java代码中进行px与dip(dp)、px与sp单位值的转换(转)------工具类_android java 字体大小 sp px 换算

android java 字体大小 sp px 换算

andorid中常用的长度单位--------------很好的东西,收藏了,谢谢原创分享。

px,dp,sp之间相互转换的工具 


  1. /**
  2. * 单位转换工具
  3. *
  4. * @author carrey
  5. *
  6. */
  7. public class DisplayUtil {
  8. /**
  9. * 将px值转换为dip或dp值,保证尺寸大小不变
  10. *
  11. * @param pxValue
  12. * @param scale
  13. * (DisplayMetrics类中属性density)
  14. * @return
  15. */
  16. public static int px2dip(float pxValue, float scale) {
  17. return (int) (pxValue / scale + 0.5f);
  18. }
  19. /**
  20. * 将dip或dp值转换为px值,保证尺寸大小不变
  21. *
  22. * @param dipValue
  23. * @param scale
  24. * (DisplayMetrics类中属性density)
  25. * @return
  26. */
  27. public static int dip2px(float dipValue, float scale) {
  28. return (int) (dipValue * scale + 0.5f);
  29. }
  30. /**
  31. * 将px值转换为sp值,保证文字大小不变
  32. *
  33. * @param pxValue
  34. * @param fontScale
  35. * (DisplayMetrics类中属性scaledDensity)
  36. * @return
  37. */
  38. public static int px2sp(float pxValue, float fontScale) {
  39. return (int) (pxValue / fontScale + 0.5f);
  40. }
  41. /**
  42. * 将sp值转换为px值,保证文字大小不变
  43. *
  44. * @param spValue
  45. * @param fontScale
  46. * (DisplayMetrics类中属性scaledDensity)
  47. * @return
  48. */
  49. public static int sp2px(float spValue, float fontScale) {
  50. return (int) (spValue * fontScale + 0.5f);
  51. }
  52. }


屏幕参数工具类,得到屏幕的宽度,高度,密度,洗漱,缩放系数,屏幕朝向

  1. /**
  2. * 屏幕参数工具
  3. *
  4. * @author carrey
  5. *
  6. */
  7. public class DisplayParams {
  8. /** 屏幕宽度——px */
  9. public int screenWidth;
  10. /** 屏幕高度——px */
  11. public int screenHeight;
  12. /** 屏幕密度——dpi */
  13. public int densityDpi;
  14. /** 缩放系数——densityDpi/160 */
  15. public float scale;
  16. /** 文字缩放系数 */
  17. public float fontScale;
  18. /** 屏幕朝向 */
  19. public int screenOrientation;
  20. /** 表示屏幕朝向垂直 */
  21. public final static int SCREEN_ORIENTATION_VERTICAL = 1;
  22. /** 表示屏幕朝向水平 */
  23. public final static int SCREEN_ORIENTATION_HORIZONTAL = 2;
  24. private static DisplayParams singleInstance;
  25. /**
  26. * 私有构造方法
  27. *
  28. * @param context
  29. */
  30. private DisplayParams(Context context) {
  31. DisplayMetrics dm = context.getResources().getDisplayMetrics();
  32. screenWidth = dm.widthPixels;
  33. screenHeight = dm.heightPixels;
  34. densityDpi = dm.densityDpi;
  35. scale = dm.density;
  36. fontScale = dm.scaledDensity;
  37. screenOrientation = screenHeight > screenWidth ? SCREEN_ORIENTATION_VERTICAL
  38. : SCREEN_ORIENTATION_HORIZONTAL;
  39. }
  40. /**
  41. * 获取实例
  42. *
  43. * @param context
  44. * @return
  45. */
  46. public static DisplayParams getInstance(Context context) {
  47. if (singleInstance == null) {
  48. singleInstance = new DisplayParams(context);
  49. }
  50. return singleInstance;
  51. }
  52. /**
  53. * 获取新的实例
  54. *
  55. * @param context
  56. * @return
  57. */
  58. public static DisplayParams getNewInstance(Context context) {
  59. if (singleInstance != null) {
  60. singleInstance = null;
  61. }
  62. return getInstance(context);
  63. }
  64. }



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/984605
推荐阅读
相关标签
  

闽ICP备14008679号