From fcdddf8b9b34f9930bec454b5fffe41c0e33ba3c Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期一, 24 四月 2023 21:17:05 +0800
Subject: [PATCH] 功能模块大部分

---
 app_base/src/main/java/com/android/app_base/utils/ScreenSizeUtils.java |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 55 insertions(+), 1 deletions(-)

diff --git a/app_base/src/main/java/com/android/app_base/utils/ScreenSizeUtils.java b/app_base/src/main/java/com/android/app_base/utils/ScreenSizeUtils.java
index 67634fb..b7311de 100644
--- a/app_base/src/main/java/com/android/app_base/utils/ScreenSizeUtils.java
+++ b/app_base/src/main/java/com/android/app_base/utils/ScreenSizeUtils.java
@@ -1,8 +1,15 @@
 package com.android.app_base.utils;
 
+import android.app.Activity;
+import android.app.Application;
+import android.content.ComponentCallbacks;
 import android.content.Context;
+import android.content.res.Configuration;
+import android.util.DisplayMetrics;
 
 import androidx.annotation.DimenRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 /**
  * @author Ljj
@@ -32,7 +39,7 @@
      */
     public  static int getDP(Context context,@DimenRes int dpSize){
         float pxValue = context.getResources().getDimension(dpSize);//鑾峰彇瀵瑰簲璧勬簮鏂囦欢涓嬬殑sp鍊�
-        //灏唒x鍊艰浆鎹㈡垚sp鍊�
+        //灏唒x鍊艰浆鎹㈡垚dp鍊�
         return px2dip(context, pxValue);
     }
 
@@ -71,4 +78,51 @@
         final float scale = context.getResources().getDisplayMetrics().scaledDensity;
         return (int) (pxValue / scale + 0.5f);
     }
+    public static int getScreenWidth(Context context){
+        DisplayMetrics dm = context.getResources().getDisplayMetrics();
+        if(dm != null)return dm.widthPixels;
+        return 0;
+    }
+    public static int getScreenHeight(Context context){
+        DisplayMetrics dm = context.getResources().getDisplayMetrics();
+        if(dm != null)return dm.heightPixels;
+        return 0;
+    }
+
+    //浠婃棩澶存潯灞忓箷閫傞厤鏂规
+    private static float sNoncompatDensity;
+    private static float sNoncompatScaledDensity;
+    public static void setCustomDensity(@NonNull Activity activity, @NonNull final Application application){
+        final  DisplayMetrics appDisplayMetrics = application.getResources().getDisplayMetrics();
+
+        if (sNoncompatDensity == 0){
+            sNoncompatDensity = appDisplayMetrics.density;
+            sNoncompatScaledDensity = appDisplayMetrics.scaledDensity;
+            application.registerComponentCallbacks(new ComponentCallbacks() {
+                @Override
+                public void onConfigurationChanged(@NonNull Configuration newConfig) {
+                    if (newConfig != null && newConfig.fontScale > 0){
+                        sNoncompatScaledDensity = application.getResources().getDisplayMetrics().scaledDensity;
+                    }
+                }
+
+                @Override
+                public void onLowMemory() {
+
+                }
+            });
+        }
+        final float targetDensity = appDisplayMetrics.widthPixels / 360;
+        final float targetScaledDensity = targetDensity * (sNoncompatScaledDensity / sNoncompatDensity);
+        final int targetDensityDpi = (int) (160*targetDensity);
+
+        appDisplayMetrics.density = targetDensity;
+        appDisplayMetrics.scaledDensity = targetScaledDensity;
+        appDisplayMetrics.densityDpi = targetDensityDpi;
+
+        final DisplayMetrics activityDisplayMetrics = activity.getResources().getDisplayMetrics();
+        activityDisplayMetrics.density = targetDensity;
+        activityDisplayMetrics.scaledDensity = targetScaledDensity;
+        activityDisplayMetrics.densityDpi = targetDensityDpi;
+    }
 }

--
Gitblit v1.9.1