This is an automated email from the ASF dual-hosted git repository.

kyork pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-weex.git


The following commit(s) were added to refs/heads/master by this push:
     new 73c55cb  [Android] fix Android9 inaccurate ScreenHeight problem (#2536)
73c55cb is described below

commit 73c55cb9ff0cb68a74155ac862f89484b31f327b
Author: katherine95s <[email protected]>
AuthorDate: Thu Jun 13 11:08:13 2019 +0800

    [Android] fix Android9 inaccurate ScreenHeight problem (#2536)
    
    * [Android] fix Android9 inaccurate SreenHeight problem
---
 .../src/main/java/com/taobao/weex/utils/WXViewUtils.java   | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/android/sdk/src/main/java/com/taobao/weex/utils/WXViewUtils.java 
b/android/sdk/src/main/java/com/taobao/weex/utils/WXViewUtils.java
index 1f11344..8d55daf 100644
--- a/android/sdk/src/main/java/com/taobao/weex/utils/WXViewUtils.java
+++ b/android/sdk/src/main/java/com/taobao/weex/utils/WXViewUtils.java
@@ -24,6 +24,7 @@ import android.content.res.Resources;
 import android.graphics.Canvas;
 import android.graphics.Path;
 import android.graphics.PixelFormat;
+import android.graphics.Point;
 import android.graphics.RectF;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.LayerDrawable;
@@ -36,6 +37,8 @@ import android.util.DisplayMetrics;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup.LayoutParams;
+import android.view.WindowManager;
+
 import com.taobao.weex.WXEnvironment;
 import com.taobao.weex.WXSDKInstance;
 import com.taobao.weex.WXSDKManager;
@@ -206,8 +209,17 @@ public class WXViewUtils {
 
   public static int getScreenHeight(Context cxt) {
     if(cxt!=null){
+      WindowManager wm;
       Resources res = cxt.getResources();
-      mScreenHeight =cxt.getResources().getDisplayMetrics().heightPixels;
+      if(Build.VERSION.SDK_INT >= 28 && (wm = 
(WindowManager)cxt.getSystemService(Context.WINDOW_SERVICE)) != null
+              && wm.getDefaultDisplay() != null){
+        Point size = new Point();
+        wm.getDefaultDisplay().getRealSize(size);
+        mScreenHeight = size.y;
+      }
+      else {
+        mScreenHeight = cxt.getResources().getDisplayMetrics().heightPixels;
+      }
       if(WXEnvironment.SETTING_FORCE_VERTICAL_SCREEN){
         mScreenWidth = res
                 .getDisplayMetrics()

Reply via email to