From bea4241b36cdece458bf15d6193acdeca706ff56 Mon Sep 17 00:00:00 2001 From: chanthuang Date: Mon, 20 May 2019 15:41:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20getRealScreenSize=20=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=20cache=20=E9=98=B2=E6=AD=A2=E6=8A=98=E5=8F=A0=E5=B1=8F?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=B1=8F=E5=B9=95=E6=97=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AE=BD=E9=AB=98=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qmuiteam/qmui/util/QMUIDisplayHelper.java | 60 ++++++++++--------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/qmui/src/main/java/com/qmuiteam/qmui/util/QMUIDisplayHelper.java b/qmui/src/main/java/com/qmuiteam/qmui/util/QMUIDisplayHelper.java index 215ab26e..4c91c51b 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/util/QMUIDisplayHelper.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/util/QMUIDisplayHelper.java @@ -61,8 +61,8 @@ public class QMUIDisplayHelper { */ private static Boolean sHasCamera = null; - private static int[] sPortraitRealSizeCache = null; - private static int[] sLandscapeRealSizeCache = null; +// private static int[] sPortraitRealSizeCache = null; +// private static int[] sLandscapeRealSizeCache = null; /** * 获取 DisplayMetrics @@ -131,33 +131,35 @@ public class QMUIDisplayHelper { */ public static int[] getRealScreenSize(Context context) { - if (QMUIDeviceHelper.isEssentialPhone() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - // Essential Phone 8.0版本后,Display size 会根据挖孔屏的设置而得到不同的结果,不能信任 cache - return doGetRealScreenSize(context); - } - int orientation = context.getResources().getConfiguration().orientation; - int[] result; - if (orientation == Configuration.ORIENTATION_LANDSCAPE) { - result = sLandscapeRealSizeCache; - if (result == null) { - result = doGetRealScreenSize(context); - if(result[0] > result[1]){ - // the result may be wrong sometimes, do not cache !!!! - sLandscapeRealSizeCache = result; - } - } - return result; - } else { - result = sPortraitRealSizeCache; - if (result == null) { - result = doGetRealScreenSize(context); - if(result[0] < result[1]){ - // the result may be wrong sometimes, do not cache !!!! - sPortraitRealSizeCache = result; - } - } - return result; - } + // 切换屏幕导致宽高变化时不能用 cache,先去掉 cache + return doGetRealScreenSize(context); +// if (QMUIDeviceHelper.isEssentialPhone() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { +// // Essential Phone 8.0版本后,Display size 会根据挖孔屏的设置而得到不同的结果,不能信任 cache +// return doGetRealScreenSize(context); +// } +// int orientation = context.getResources().getConfiguration().orientation; +// int[] result; +// if (orientation == Configuration.ORIENTATION_LANDSCAPE) { +// result = sLandscapeRealSizeCache; +// if (result == null) { +// result = doGetRealScreenSize(context); +// if(result[0] > result[1]){ +// // the result may be wrong sometimes, do not cache !!!! +// sLandscapeRealSizeCache = result; +// } +// } +// return result; +// } else { +// result = sPortraitRealSizeCache; +// if (result == null) { +// result = doGetRealScreenSize(context); +// if(result[0] < result[1]){ +// // the result may be wrong sometimes, do not cache !!!! +// sPortraitRealSizeCache = result; +// } +// } +// return result; +// } } private static int[] doGetRealScreenSize(Context context) {