package com.edufound.reader.util; import android.app.Activity; import android.app.Application; import android.content.Context; import android.content.Intent; import android.text.TextUtils; import android.util.DisplayMetrics; import com.edufound.reader.activity.LoginAlertActivity; import com.edufound.reader.application.EApplication; import com.edufound.reader.bean.ChannelCode; import com.orhanobut.logger.Logger; import java.math.BigDecimal; import java.text.DecimalFormat; import io.reactivex.rxjava3.annotations.NonNull; public class EfunboxUtil { /** * 得到宽高缩放比 */ public static void initDesignSize(Context context) { final DisplayMetrics appDisplayMetrics = context.getResources().getDisplayMetrics(); int designWidth = 1280; int designHeight = 720; float ds = 1.0f * designWidth / designHeight; float ts = 1.0f * appDisplayMetrics.widthPixels / appDisplayMetrics.heightPixels; if (ds >= ts) { int targetWidth = appDisplayMetrics.widthPixels; float designScale = 1.0f * targetWidth / designWidth; setDisplay(context, designScale); } else { int targetHeight = appDisplayMetrics.heightPixels; float designScale = 1.0f * targetHeight / designHeight; setDisplay(context, designScale); } } /** * 设置dpi缩放比 */ public static void setDisplay(Context context, float designScale) { DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); displayMetrics.density = designScale; displayMetrics.scaledDensity = displayMetrics.density; displayMetrics.xdpi = displayMetrics.density * 160; displayMetrics.ydpi = displayMetrics.xdpi; displayMetrics.densityDpi = Float.valueOf(displayMetrics.xdpi).intValue(); } /** * 判断字符串是否符合手机号码格式 * 移动号段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188 * 联通号段: 130,131,132,145,155,156,170,171,175,176,185,186 * 电信号段: 133,149,153,170,173,177,180,181,189 * * @param mobileNums * @return 待检测的字符串 */ public static boolean isMobileNO(String mobileNums) { 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位。 if (TextUtils.isEmpty(mobileNums)) { return false; } else { return mobileNums.matches(telRegex); } } /** * 根据中文年纪选择换成后台枚举 */ public static String getEnumByCNGrade(String cnGrade) { // PRESCHOOL("学前"), // PRIMARY_FIRST_GRADE("小学一年级"), // PRIMARY_SECOND_GRADE("小学二年级"), // PRIMARY_THREE_GRADE("小学三年级"), // PRIMARY_SENIOR_GRADE("小学四年级"); switch (cnGrade) { case "一年级": return "PRIMARY_FIRST_GRADE"; case "二年级": return "PRIMARY_SECOND_GRADE"; case "三年级": return "PRIMARY_THREE_GRADE"; case "四年级": return "PRIMARY_SENIOR_GRADE"; case "学前": return "PRESCHOOL"; } return "undefinde"; } public static String getCNGradeByEnum(String gradeEnum) { switch (gradeEnum) { case "PRIMARY_FIRST_GRADE": return "一年级"; case "PRIMARY_SECOND_GRADE": return "二年级"; case "PRIMARY_THREE_GRADE": return "三年级"; case "PRIMARY_SENIOR_GRADE": return "四年级"; case "PRESCHOOL": return "学前"; } return "undefinde"; } public static int getIndexGradeByEnum(String gradeEnum) { switch (gradeEnum) { case "PRIMARY_FIRST_GRADE": return 0; case "PRIMARY_SECOND_GRADE": return 1; case "PRIMARY_THREE_GRADE": return 2; case "PRIMARY_SENIOR_GRADE": return 3; case "PRESCHOOL": return 4; } return -1; } public static boolean checkLogin(Context context) { if (!Consts.getUID().equals("test")) { //已登录 return true; } //未登录,去登录 if (Consts.getUmengChannel().equals(ChannelCode.BAIDU.getChannelCode())) { //百度渠道调用百度的授权 } else if (Consts.getUmengChannel().equals(ChannelCode.YIFANG.getChannelCode())) { //义方调用普通版登录 Intent tologin = new Intent(context, LoginAlertActivity.class); context.startActivity(tologin); } return false; } public static String checkNum10000(String num) { if (Float.valueOf(num) > 10000f) { float a = Float.parseFloat(num) / 10000; DecimalFormat decimalFormat = new DecimalFormat("#.#"); return String.valueOf(decimalFormat.format(a)) + "万"; } return num; } }