浏览代码

[메인][New] 타이틀 1줄 -> 2줄, 스크린 사이즈에 소프트키 영역 포함

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

+ 17 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/bean/api/LifeplusContentsBean.java

@@ -138,6 +138,23 @@ public class LifeplusContentsBean extends JsonBeanBase {
     return trim(subTitle);
   }
 
+  public String getTwoLineTitle() {
+    // 타이틀 줄바꿈이 사라져서 강제로 줄바꿈 해줌
+    String twoLineTitle = this.title;
+    twoLineTitle = twoLineTitle.replace("\n", " ").replace("  ", " ");
+    String[] titles = twoLineTitle.split(" ");
+    int len = titles.length;
+    int target = len > 5 ? 2 : 1;
+    StringBuilder stringBuilder = new StringBuilder();
+    for (int i = 0; i < len; ++i) {
+      stringBuilder.append(titles[i]).append(" ");
+      if (i == target) {
+        stringBuilder.append("\n");
+      }
+    }
+    return stringBuilder.toString();
+  }
+
   public LifeplusContentsBean clone() {
     LifeplusContentsBean bean = new LifeplusContentsBean();
     bean.setItemNumber(getItemNumber());

+ 19 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/model/SuperModelInit.java

@@ -6,6 +6,7 @@ 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;
 import android.view.Display;
 import android.view.WindowManager;
@@ -37,10 +38,28 @@ public class SuperModelInit {
     int width = size.x;
     int height = size.y;
 
+    height += getSoftButtonsBarHeight(context);
+
     Log.w("APP# SuperModelInit | init", "|" + " SCREEN W: " + width + ", H: " + height);
 
     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);
+    DisplayMetrics metrics = new DisplayMetrics();
+    wm.getDefaultDisplay().getMetrics(metrics);
+    int usableHeight = metrics.heightPixels;
+    wm.getDefaultDisplay().getRealMetrics(metrics);
+    int realHeight = metrics.heightPixels;
+    if (realHeight > usableHeight) {
+      return realHeight - usableHeight;
+    }
+    else {
+      return 0;
+    }
+  }
 }

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsListicleCoverHolder.java

@@ -67,7 +67,7 @@ public class ContentsListicleCoverHolder extends ContentsHolder<ContentsDetailBe
     }
 
     textViewSubTitle.setText(bean.getSubTitle());
-    textViewTitle.setText(bean.getTitle());
+    textViewTitle.setText(bean.getTwoLineTitle());
     StringBuilder stringBuilder = new StringBuilder();
     int len = bean.getTagList().size();
     len = Math.min(len, 2);

+ 20 - 18
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainCategoryContentsImageView.java

@@ -18,6 +18,7 @@ import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.DataSource;
 import com.bumptech.glide.load.engine.GlideException;
 import com.bumptech.glide.request.RequestListener;
+import com.bumptech.glide.request.RequestOptions;
 import com.bumptech.glide.request.target.Target;
 
 import kr.co.zumo.app.R;
@@ -172,22 +173,23 @@ public class MainCategoryContentsImageView extends MainCategoryContentsView {
       if (x > -maskWidth && x < screenWidth) {  // holder 가 표시되는 부분에서만 계산
 
         // modify itemView x -------------------------------------------------
-        cx = x + (maskWidth >> 1);
-        ratio = (float) -cx / (maskWidth >> 1);
-
-        if (ratio > 1) {
-          ratio = 1;
-        }
-        else if (ratio < 0) {
-          ratio = 0;
-        }
-        tx = (int) -(spaceWidth * ratio);
-
-        // 이미지와 dim 마스크 함께 이동.
-        imageView.setX(tx);
-        mask0.setX(tx);
-        mask1.setX(tx);
-        mask2.setX(tx);
+        tx = 0;
+//        cx = x + (maskWidth >> 1);
+//        ratio = (float) -cx / (maskWidth >> 1);
+//
+//        if (ratio > 1) {
+//          ratio = 1;
+//        }
+//        else if (ratio < 0) {
+//          ratio = 0;
+//        }
+//        tx = (int) -(spaceWidth * ratio);
+//
+//        // 이미지와 dim 마스크 함께 이동.
+//        imageView.setX(tx);
+//        mask0.setX(tx);
+//        mask1.setX(tx);
+//        mask2.setX(tx);
         // modify itemView x -------------------------------------------------
 
         // bitmap x -------------------------------------------------------
@@ -281,7 +283,7 @@ public class MainCategoryContentsImageView extends MainCategoryContentsView {
     this.textPositionMaxYOnMask = (((ViewGroup.MarginLayoutParams) textBig.getLayoutParams()).topMargin); //ResourceUtil.dpToPx(218); <- 레이아웃의 위치를 최대값으로 지정.
     this.textPositionTargetYOnScreen = screenHeight - ResourceUtil.dpToPx(71);
 
-    textBig.setText(bean.getTitle());
+    textBig.setText(bean.getTwoLineTitle());
     textSmall.setText(bean.getSubtitleWithTrim());
 
     maskWidth = ResourceUtil.getDimension(R.dimen.main_contents_image_width);
@@ -302,7 +304,7 @@ public class MainCategoryContentsImageView extends MainCategoryContentsView {
       .load(url)
 //      .apply(new RequestOptions().diskCacheStrategy(DiskCacheStrategy.NONE))
 //      .apply(new RequestOptions().skipMemoryCache(true))
-//      .apply(new RequestOptions().override(maskWidth, maskHeight))
+      .apply(new RequestOptions().override(maskWidth + 400, maskHeight + 100))
       .listener(new RequestListener<Drawable>() {
         @Override
         public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {