EfunboxUtil.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.edufound.reader.util;
  2. import android.app.Activity;
  3. import android.app.Application;
  4. import android.content.Context;
  5. import android.text.TextUtils;
  6. import android.util.DisplayMetrics;
  7. import com.orhanobut.logger.Logger;
  8. import io.reactivex.rxjava3.annotations.NonNull;
  9. public class EfunboxUtil {
  10. /**
  11. * 得到宽高缩放比
  12. */
  13. public static void initDesignSize(Context context) {
  14. final DisplayMetrics appDisplayMetrics = context.getResources().getDisplayMetrics();
  15. int designWidth = 1280;
  16. int designHeight = 720;
  17. float ds = 1.0f * designWidth / designHeight;
  18. float ts = 1.0f * appDisplayMetrics.widthPixels / appDisplayMetrics.heightPixels;
  19. if (ds >= ts) {
  20. int targetWidth = appDisplayMetrics.widthPixels;
  21. float designScale = 1.0f * targetWidth / designWidth;
  22. setDisplay(context, designScale);
  23. } else {
  24. int targetHeight = appDisplayMetrics.heightPixels;
  25. float designScale = 1.0f * targetHeight / designHeight;
  26. setDisplay(context, designScale);
  27. }
  28. }
  29. /**
  30. * 设置dpi缩放比
  31. */
  32. public static void setDisplay(Context context, float designScale) {
  33. DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
  34. displayMetrics.density = designScale;
  35. displayMetrics.scaledDensity = displayMetrics.density;
  36. displayMetrics.xdpi = displayMetrics.density * 160;
  37. displayMetrics.ydpi = displayMetrics.xdpi;
  38. displayMetrics.densityDpi = Float.valueOf(displayMetrics.xdpi).intValue();
  39. }
  40. /**
  41. * 判断字符串是否符合手机号码格式
  42. * 移动号段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188
  43. * 联通号段: 130,131,132,145,155,156,170,171,175,176,185,186
  44. * 电信号段: 133,149,153,170,173,177,180,181,189
  45. *
  46. * @param mobileNums
  47. * @return 待检测的字符串
  48. */
  49. public static boolean isMobileNO(String mobileNums) {
  50. String telRegex = "^((13[0-9])|(14[5,7,9])|(15[^4])|(18[0-9])|(17[0,1,3,5,6,7,8]))\\d{8}$";// "[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。
  51. if (TextUtils.isEmpty(mobileNums)) {
  52. return false;
  53. } else {
  54. return mobileNums.matches(telRegex);
  55. }
  56. }
  57. /**
  58. * 根据中文年纪选择换成后台枚举
  59. */
  60. public static String getEnumByCNGrade(String cnGrade) {
  61. // PRESCHOOL("学前"),
  62. // PRIMARY_FIRST_GRADE("小学一年级"),
  63. // PRIMARY_SECOND_GRADE("小学二年级"),
  64. // PRIMARY_THREE_GRADE("小学三年级"),
  65. // PRIMARY_SENIOR_GRADE("小学四年级");
  66. switch (cnGrade) {
  67. case "一年级":
  68. return "PRIMARY_FIRST_GRADE";
  69. case "二年级":
  70. return "PRIMARY_SECOND_GRADE";
  71. case "三年级":
  72. return "PRIMARY_THREE_GRADE";
  73. case "四年级":
  74. return "PRIMARY_SENIOR_GRADE";
  75. case "学前":
  76. return "PRESCHOOL";
  77. }
  78. return "undefinde";
  79. }
  80. public static String getCNGradeByEnum(String cnGrade) {
  81. switch (cnGrade) {
  82. case "PRIMARY_FIRST_GRADE":
  83. return "一年级";
  84. case "PRIMARY_SECOND_GRADE":
  85. return "二年级";
  86. case "PRIMARY_THREE_GRADE":
  87. return "三年级";
  88. case "PRIMARY_SENIOR_GRADE":
  89. return "四年级";
  90. case "PRESCHOOL":
  91. return "学前";
  92. }
  93. return "undefinde";
  94. }
  95. }