From 25b98735c5c0cbe40a07ae91a9fb2b204d9166b7 Mon Sep 17 00:00:00 2001 From: Linjiajia <319408893@qq.com> Date: 星期一, 20 三月 2023 22:30:08 +0800 Subject: [PATCH] 登录和家大事记 --- app_base/src/main/java/com/android/app_base/utils/ScreenSizeUtils.java | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 54 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..4576fd6 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,50 @@ 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