浏览代码

[공통][New] 화면 사이즈 계산 방식 변경

hyodong.min 7 年之前
父节点
当前提交
62cdea183e

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ActivityBase.java

@@ -84,7 +84,7 @@ public abstract class ActivityBase extends AppCompatActivity {
       // TODO: 소프트키 있을경우 판별하여 레이아웃 패딩 추가, 추후 수정예정 
       //소프트키 있을 경우 판별하여 레이아웃 조절
       if (AppUtil.hasNavBar()) {
-        findViewById(R.id.layout_container).setPadding(0, 0, 0, ResourceUtil.getNavigationBarHeight());
+        findViewById(R.id.layout_container).setPadding(0, 0, 0, ResourceUtil.getNavBarHeightValue());
       }
       findViewById(R.id.layout_app_bar).setPadding(0, ResourceUtil.getStatusBarHeight(), 0, 0);
 

+ 7 - 30
app/src/main/java/kr/co/zumo/app/lifeplus/model/SuperModelInit.java

@@ -4,7 +4,6 @@
 package kr.co.zumo.app.lifeplus.model;
 
 import android.content.Context;
-import android.graphics.Point;
 import android.preference.PreferenceManager;
 import android.util.DisplayMetrics;
 import android.util.Log;
@@ -37,14 +36,14 @@ public class SuperModelInit {
     int height = 0;
     if (wm != null) {
       Display display = wm.getDefaultDisplay();
-      Point size = new Point();
-      display.getSize(size);
-      width = size.x;
-      height = size.y;
+      DisplayMetrics metrics = new DisplayMetrics();
+      display.getRealMetrics(metrics);
+      width = metrics.widthPixels;
+      height = metrics.heightPixels;
+    }
 
-      if (AppUtil.hasNavBar()) {
-        height -= ResourceUtil.getNavigationBarHeight();
-      }
+    if (AppUtil.hasNavBar()) {
+      height -= ResourceUtil.getNavBarHeightValue();
     }
 
     Log.w("APP# SuperModelInit | init", "|" + " SCREEN W: " + width + ", H: " + height);
@@ -52,26 +51,4 @@ public class SuperModelInit {
     SuperModel.getInstance().init(new LifeplusPreferences(new BaseSharedPreferences(PreferenceManager.getDefaultSharedPreferences(context))), width, height);
     SuperModel.getInstance().setDeviceId(AppUtil.getDeviceId(context));
   }
-
-  private static int getSoftButtonsBarHeight(Context context) {
-    // getRealMetrics is only available with API 17 and +
-    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
-    if (wm != null) {
-      Display display = wm.getDefaultDisplay();
-      DisplayMetrics metrics = new DisplayMetrics();
-      display.getMetrics(metrics);
-      int usableHeight = metrics.heightPixels;
-      display.getRealMetrics(metrics);
-      int realHeight = metrics.heightPixels;
-      if (realHeight > usableHeight) {
-        return realHeight - usableHeight;
-      }
-      else {
-        return 0;
-      }
-    }
-    else {
-      return 0;
-    }
-  }
 }

+ 38 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/util/ResourceUtil.java

@@ -3,6 +3,7 @@
  */
 package kr.co.zumo.app.lifeplus.util;
 
+import android.content.Context;
 import android.content.res.ColorStateList;
 import android.graphics.drawable.Drawable;
 import android.support.annotation.ArrayRes;
@@ -12,7 +13,11 @@ import android.support.annotation.DrawableRes;
 import android.support.annotation.IdRes;
 import android.support.annotation.StringRes;
 import android.support.v4.content.ContextCompat;
+import android.util.DisplayMetrics;
+import android.util.Log;
 import android.util.TypedValue;
+import android.view.Display;
+import android.view.WindowManager;
 
 import kr.co.zumo.app.lifeplus.application.App;
 
@@ -174,17 +179,47 @@ public class ResourceUtil {
 
 
   /**
-   * 네비게이션 바 높이 (하단 바)
+   * 네비게이션 바 높이 값 (하단 바)
+   * - 네비게이션 바 보여짐과 상관없이 설정된 높이 값을 반환
    *
    * @return
    */
-  public static int getNavigationBarHeight() {
+  public static int getNavBarHeightValue() {
     int navigationBarHeight = 0;
     int resourceId = App.getInstance().getContext().getResources().getIdentifier("navigation_bar_height", "dimen", "android");
     if (resourceId > 0) {
       navigationBarHeight = App.getInstance().getContext().getResources().getDimensionPixelSize(resourceId);
     }
-//    Log.e("APP#  ActivityBase | getNavigationBarHeight", "|" + navigationBarHeight);
+//    Log.e("APP#  ResourceUtil | getNavBarHeightValue", "|" + navigationBarHeight);
     return navigationBarHeight;
   }
+
+  /**
+   * 네비게이션 바의 유무에 따른 높이값 반환
+   * - 표시되고 있으면 높이 값 반환, 표시되지 않으면 0 반환
+   *
+   * @return
+   */
+  public static int getNavBarHeight() {
+    // getRealMetrics is only available with API 17 and +
+    WindowManager wm = (WindowManager) App.getInstance().getContext().getSystemService(Context.WINDOW_SERVICE);
+    if (wm != null) {
+      Display display = wm.getDefaultDisplay();
+      DisplayMetrics metrics = new DisplayMetrics();
+      display.getMetrics(metrics);
+      int usableHeight = metrics.heightPixels;
+      display.getRealMetrics(metrics);
+      int realHeight = metrics.heightPixels;
+      Log.w("APP# ResourceUtil | getNavBarHeight", "|" + "usableHeight: " + usableHeight + ", realHeight: " + realHeight);
+      if (realHeight > usableHeight) {
+        return realHeight - usableHeight;
+      }
+      else {
+        return 0;
+      }
+    }
+    else {
+      return 0;
+    }
+  }
 }

+ 3 - 7
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/MoreInfoDialog.java

@@ -13,7 +13,6 @@ import java.util.List;
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.ContentsMoreInfoBean;
 import kr.co.zumo.app.lifeplus.model.SuperModel;
-import kr.co.zumo.app.lifeplus.util.AppUtil;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.custom.contents.CustomMoreInfoView;
@@ -65,14 +64,11 @@ public class MoreInfoDialog extends DialogBottomBase<ICustomDialogListener<MoreI
     getDialog().getWindow().getAttributes().windowAnimations = R.style.DialogMoreInfoAnimation;
 
     //dialog height 설정
-    getView().getLayoutParams().height = SuperModel.getInstance().getScreenHeight() / 2 + ResourceUtil.dpToPx(54);
-
-
-    if (AppUtil.hasNavBar()) {
-      getView().getLayoutParams().height = ((SuperModel.getInstance().getScreenHeight() - ResourceUtil.getNavigationBarHeight()) / 2) + ResourceUtil.dpToPx(54);
+    getView().getLayoutParams().height = (SuperModel.getInstance().getScreenHeight() >> 1) + ResourceUtil.dpToPx(54);
+    if (ResourceUtil.getNavBarHeight() == 0) {
+      getView().getLayoutParams().height += ResourceUtil.getNavBarHeightValue();
     }
 
-
     layoutMoreInfoContainer = getView().findViewById(R.id.layout_more_info_container);
 
     for (int i = 0; i < contentsMoreInfoBeanList.size(); i++) {