浏览代码

[컨텐츠][New] 전체보기 타이틀/서브타이틀 2줄로 제한

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

+ 50 - 5
app/src/main/java/kr/co/zumo/app/lifeplus/bean/api/LifeplusContentsBean.java

@@ -118,48 +118,93 @@ public class LifeplusContentsBean extends JsonBeanBase {
     this.pageIndex = pageIndex;
   }
 
+  /**
+   * Web View 에서 표시할 url
+   *
+   * @return
+   */
   public String getContentsUrlWithParam() {
     return contentsUrl + "?itemNo=" + itemNumber + "&headerVisible=n";
   }
 
+  /**
+   * 공유 형식에 맞게 변형된 contents url
+   *
+   * @param pageIndex
+   * @return
+   */
   public String getContentsUrlWithParamForShare(int pageIndex) {
     return contentsUrl + "?itemNo=" + itemNumber + "&headerVisible=y" + "&visiblePage=" + String.valueOf(pageIndex);
   }
 
+  /**
+   * 좌우 공백 및 개행 문자, 이중 공백 등 제거된 title
+   *
+   * @return
+   */
   public String getTitleWithTrim() {
     return trim(title);
   }
 
   private String trim(String str) {
-    return StringUtil.isEmpty(str) ? "" : str.trim().replace("\n", " ").replace(" \n", " ").replace("\n ", " ");
+    return StringUtil.isEmpty(str) ? "" : str.trim().replace("\n", " ").replace("  ", " ");
   }
 
-  public String getSubtitleWithTrim() {
+  /**
+   * 좌우 공백 및 개행 문자, 이중 공백 등 제거된 sub title
+   *
+   * @return
+   */
+  public String getSubTitleWithTrim() {
     return trim(subTitle);
   }
 
+//  public String getSubTitleForWordWrap() {
+  // 워드랩을 방해하는 특수 문자
+//    return subTitle.replace("\u00A0", " ");
+//  }
+
+  /**
+   * 2줄로 개행한 타이틀
+   *
+   * @return
+   */
   public String getTwoLineTitle() {
     // 타이틀 줄바꿈이 사라져서 강제로 줄바꿈 해줌
     String twoLineTitle = this.title;
+
+    // \\n 문자를 줄바꿈 문자로 변경
+    twoLineTitle = twoLineTitle.replaceAll("\\\\n", "\n");
+
+    // 줄바꿈이 있으면 그대로 전달
     if (twoLineTitle.contains("\n")) {
       return twoLineTitle;
     }
     else {
-//      twoLineTitle = twoLineTitle.replace("\n", " ").replace("  ", " ");
       String[] titles = twoLineTitle.split(" ");
       int len = titles.length;
-      int target = len > 5 ? 2 : 1;
+      // 줄바꿈 위치 지정 6단어 이상이면 4번째부터, 그 이하는 3번째 단어에서 줄바꿈 해줌
+      int target = len > 5 ? 3 : 2;
+      // 줄바꿈 할 위치보다 단어가 적으면 하지 않음
+      if (target >= len) {
+        target = -1;
+      }
       StringBuilder stringBuilder = new StringBuilder();
       for (int i = 0; i < len; ++i) {
-        stringBuilder.append(titles[i]).append(" ");
         if (i == target) {
           stringBuilder.append("\n");
         }
+        stringBuilder.append(titles[i]).append(" ");
       }
       return stringBuilder.toString();
     }
   }
 
+  /**
+   * clone
+   *
+   * @return
+   */
   public LifeplusContentsBean clone() {
     LifeplusContentsBean bean = new LifeplusContentsBean();
     bean.setItemNumber(getItemNumber());

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/tool/ShareFacebook.java

@@ -68,7 +68,7 @@ public class ShareFacebook extends Share<Activity> {
 //      .build();
 //
 //    ShareApi api = new ShareApi(content);
-//    api.setMessage(contentsBean.getSubtitleWithTrim());
+//    api.setMessage(contentsBean.getSubTitleWithTrim());
 //
 //    api.share(new FacebookCallback<Sharer.Result>() {
 //

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

@@ -49,7 +49,7 @@ public class ContentsOverviewHolder extends RecyclerView.ViewHolder {
   public void attach() {
     if (null != contentsDetailBean) {
       Glide.with(imageViewItem).load(contentsDetailBean.getImageUrl()).into(imageViewItem);
-      textViewTitle.setText(contentsDetailBean.getTitle());
+      textViewTitle.setText(contentsDetailBean.getTwoLineTitle());
       if (index == 0) {
         textViewSubTitle.setVisibility(View.GONE);
         textViewCategoryNumber.setText(R.string.cover);

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

@@ -284,7 +284,7 @@ public class MainCategoryContentsImageView extends MainCategoryContentsView {
     this.textPositionTargetYOnScreen = screenHeight - ResourceUtil.dpToPx(71);
 
     textBig.setText(bean.getTwoLineTitle());
-    textSmall.setText(bean.getSubtitleWithTrim());
+    textSmall.setText(bean.getSubTitleWithTrim());
 
     maskWidth = ResourceUtil.getDimension(R.dimen.main_contents_image_width);
     maskHeight = ResourceUtil.getDimension(R.dimen.main_contents_image_height);

+ 12 - 4
app/src/main/res/layout/overview_item_view.xml

@@ -28,35 +28,43 @@
     android:id="@+id/text_view_title"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
+    android:ellipsize="end"
     android:gravity="center_horizontal"
     android:lineSpacingExtra="4dp"
+    android:maxLines="2"
+    android:paddingStart="10dp"
+    android:paddingEnd="10dp"
     android:textColor="@color/CF8F8F8"
     android:textSize="14sp"
     android:textStyle="bold"
+    app:layout_constrainedWidth="true"
     app:layout_constraintBottom_toTopOf="@+id/text_view_sub_title"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toTopOf="parent"
     app:layout_constraintVertical_chainStyle="packed"
-    tools:text="문을 여시오
-대문이 대문짝 5"/>
+    tools:text="문을 여시오 대문이 대문짝 5 문을 여시오 대문이 대문짝 5"/>
 
   <TextView
     android:id="@+id/text_view_sub_title"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginTop="5dp"
+    android:ellipsize="end"
     android:gravity="center_horizontal"
     android:lineSpacingExtra="3sp"
+    android:maxLines="2"
+    android:paddingStart="10dp"
+    android:paddingEnd="10dp"
     android:textColor="@color/CFFFFFF"
     android:textSize="11dp"
+    app:layout_constrainedWidth="true"
     app:layout_constraintBottom_toBottomOf="parent"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintHorizontal_bias="0.5"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toBottomOf="@+id/text_view_title"
-    tools:text="샛노란 공장 대문 열면
-트렌디한 감성이 훅"/>
+    tools:text="샛노란 공장 대문 열면 샛노란 공장 대문 열면 트렌디한 감성이 훅"/>
 
   <TextView
     android:id="@+id/text_view_category_number"