Explorar o código

[메인][Common] 전체보기 구현 중

Hasemi %!s(int64=7) %!d(string=hai) anos
pai
achega
8037375bde

+ 50 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainContentsOverviewAdapter.java

@@ -0,0 +1,50 @@
+package kr.co.zumo.app.lifeplus.view.screen.main;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+
+import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.view.IEventListener;
+
+/**
+ * MainContentsOverviewAdapter
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-11-22]   [최초 작성]
+ * @since 2018-11-22
+ */
+public class MainContentsOverviewAdapter extends RecyclerView.Adapter<MainContentsOverviewHolder> {
+
+  private Context context;
+  private IEventListener listener;
+  private LayoutInflater inflater;
+
+  public MainContentsOverviewAdapter(Context context, IEventListener listener) {
+    this.context = context;
+    this.listener = listener;
+    this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+  }
+
+  @NonNull
+  @Override
+  public MainContentsOverviewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+    return new MainContentsOverviewHolder(inflater.inflate(R.layout.overview_item_view, parent, false));
+  }
+
+  @Override
+  public void onBindViewHolder(@NonNull MainContentsOverviewHolder holder, int position) {
+    holder.bind();
+
+  }
+
+  @Override
+  public int getItemCount() {
+    return 10;
+  }
+}

+ 82 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainContentsOverviewFragment.java

@@ -0,0 +1,82 @@
+package kr.co.zumo.app.lifeplus.view.screen.main;
+
+import android.graphics.Rect;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.helper.ActionBarHelper;
+import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.IEventListener;
+import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
+
+/**
+ * MainContentsOverViewFragment
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-11-22]   [최초 작성]
+ * @since 2018-11-22
+ */
+public class MainContentsOverviewFragment extends FragmentBase<MainContentsOverviewPresenter> {
+
+  private RecyclerView recyclerViewOverview;
+
+  @Override
+  protected View onAfterCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+    return inflater.inflate(R.layout.fragment_main_contents_over_view, container, false);
+  }
+
+  @Override
+  protected void onAfterActivityCreated(Bundle savedInstanceState) {
+    recyclerViewOverview = findViewById(R.id.recycler_view_over_view);
+    MainContentsOverviewAdapter adapter = new MainContentsOverviewAdapter(getActivity(), new IEventListener() {
+      @Override
+      public void onEvent(Event event) {
+
+      }
+    });
+    GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 2);
+    recyclerViewOverview.setLayoutManager(gridLayoutManager);
+    recyclerViewOverview.setAdapter(adapter);
+    recyclerViewOverview.addItemDecoration(new RecyclerView.ItemDecoration() {
+      @Override
+      public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
+        super.getItemOffsets(outRect, view, parent, state);
+      }
+    });
+  }
+
+  @Override
+  protected void defineActionBar(ActionBarHelper actionBarHelper) {
+
+  }
+
+  @Override
+  protected MainContentsOverviewPresenter definePresenter() {
+    return new MainContentsOverviewPresenter(getModel(MainContentsOverviewModel.class), this);
+  }
+
+  @Override
+  protected void onAfterDestroyView() {
+
+  }
+
+  @Override
+  protected void onAfterDestroy() {
+
+  }
+
+  @Override
+  protected boolean isSkipScreenWhenBack() {
+    return false;
+  }
+}

+ 41 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainContentsOverviewHolder.java

@@ -0,0 +1,41 @@
+package kr.co.zumo.app.lifeplus.view.screen.main;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import kr.co.zumo.app.R;
+
+/**
+ * MainContentsOverviewHolder
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-11-22]   [최초 작성]
+ * @since 2018-11-22
+ */
+public class MainContentsOverviewHolder extends RecyclerView.ViewHolder {
+
+  private ImageView imageViewItem;
+  private TextView textViewTitle;
+  private TextView textViewSubTitle;
+  private TextView textViewCategoryNumber;
+
+  public MainContentsOverviewHolder(View itemView) {
+    super(itemView);
+    imageViewItem = itemView.findViewById(R.id.image_view_item);
+    textViewTitle = itemView.findViewById(R.id.text_view_title);
+    textViewSubTitle = itemView.findViewById(R.id.text_view_sub_title);
+    textViewCategoryNumber = itemView.findViewById(R.id.text_view_category_number);
+  }
+
+  public void bind() {
+    imageViewItem.setImageDrawable(itemView.getResources().getDrawable(R.drawable.banner_bg_1));
+    textViewTitle.setText("Title");
+    textViewSubTitle.setText("sub Title");
+    textViewCategoryNumber.setText("1");
+  }
+}

+ 50 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainContentsOverviewModel.java

@@ -0,0 +1,50 @@
+package kr.co.zumo.app.lifeplus.view.screen.main;
+
+import kr.co.zumo.app.lifeplus.model.Model;
+
+/**
+ * MainContentsOverviewModel
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-11-22]   [최초 작성]
+ * @since 2018-11-22
+ */
+public class MainContentsOverviewModel extends Model {
+  @Override
+  protected void createViewInternal() {
+
+  }
+
+  @Override
+  protected void destroyInternal() {
+
+  }
+
+  @Override
+  protected void destroyViewInternal() {
+
+  }
+
+  @Override
+  protected void startInternal() {
+
+  }
+
+  @Override
+  protected void stopInternal() {
+
+  }
+
+  @Override
+  protected void resumeInternal() {
+
+  }
+
+  @Override
+  protected void pauseInternal() {
+
+  }
+}

+ 77 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainContentsOverviewPresenter.java

@@ -0,0 +1,77 @@
+package kr.co.zumo.app.lifeplus.view.screen.main;
+
+import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.IView;
+import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
+
+/**
+ * MainContentsOverviewPresenter
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-11-22]   [최초 작성]
+ * @since 2018-11-22
+ */
+public class MainContentsOverviewPresenter extends Presenter<MainContentsOverviewModel, IView> {
+
+  public MainContentsOverviewPresenter(MainContentsOverviewModel model, IView view) {
+    super(model, view);
+  }
+
+  @Override
+  protected void createViewInternal() {
+
+  }
+
+  @Override
+  protected void destroyInternal() {
+
+  }
+
+  @Override
+  protected void destroyViewInternal() {
+
+  }
+
+  @Override
+  protected void startInternal() {
+
+  }
+
+  @Override
+  protected void stopInternal() {
+
+  }
+
+  @Override
+  protected void resumeInternal() {
+
+  }
+
+  @Override
+  protected void pauseInternal() {
+
+  }
+
+  @Override
+  public boolean onBackPressed() {
+    return false;
+  }
+
+  @Override
+  protected void onEventInternal(Event event) {
+
+  }
+
+  @Override
+  public void onScreenReady() {
+
+  }
+
+  @Override
+  public void onResult(Event event) {
+
+  }
+}

+ 6 - 0
app/src/main/res/drawable/circle_cf8f8f8.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="oval">
+  <solid
+    android:color="@color/CF8F8F8"/>
+</shape>

+ 6 - 0
app/src/main/res/drawable/icon_header_bookmark_off_over_view.xml

@@ -0,0 +1,6 @@
+<vector android:height="15dp" android:viewportHeight="61"
+    android:viewportWidth="61" android:width="15dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="#00000000" android:fillType="evenOdd"
+        android:pathData="M10,9h42v46L31,39.712 10,55z"
+        android:strokeColor="#000" android:strokeLineCap="square" android:strokeWidth="6"/>
+</vector>

+ 6 - 0
app/src/main/res/drawable/icon_header_like_off_over_view.xml

@@ -0,0 +1,6 @@
+<vector android:height="15dp" android:viewportHeight="61"
+    android:viewportWidth="61" android:width="15dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="#00000000" android:fillType="evenOdd"
+        android:pathData="M30.5,54a2.944,2.944 0,0 1,-1.786 -0.607c-4.925,-3.75 -18.56,-14.473 -21.79,-20.649 -3.96,-7.57 -1.61,-17.254 5.25,-21.625C14.427,9.682 16.887,9 19.314,9c4.256,0 8.412,2.099 11.184,5.907C33.275,11.097 37.43,9 41.685,9c2.426,0 4.886,0.682 7.141,2.12 6.86,4.37 9.21,14.053 5.25,21.624 -3.23,6.176 -16.866,16.9 -21.792,20.65A2.942,2.942 0,0 1,30.5 54z"
+        android:strokeColor="#000" android:strokeLineCap="square" android:strokeWidth="6"/>
+</vector>

+ 5 - 0
app/src/main/res/drawable/icon_header_share_over_view.xml

@@ -0,0 +1,5 @@
+<vector android:height="15dp" android:viewportHeight="61"
+    android:viewportWidth="61" android:width="15dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="#000" android:fillType="nonZero" android:pathData="M50.832,8L55,12.168 32.168,35 28,30.832z"/>
+    <path android:fillColor="#000" android:fillType="nonZero" android:pathData="M50,50V33.288h6V56H6V6h22.646v6H12v38zM50,12H38V6h18v18h-6z"/>
+</vector>

+ 92 - 0
app/src/main/res/layout/fragment_main_contents_over_view.xml

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:tools="http://schemas.android.com/tools"
+  android:layout_width="match_parent"
+  android:layout_height="match_parent">
+
+  <android.support.v7.widget.RecyclerView
+    android:id="@+id/recycler_view_over_view"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toTopOf="parent">
+  </android.support.v7.widget.RecyclerView>
+
+  <android.support.constraint.ConstraintLayout
+    android:id="@+id/layout_icon"
+    android:layout_width="match_parent"
+    android:layout_height="78dp"
+    app:layout_constraintBottom_toBottomOf="parent">
+
+    <ImageView
+      android:id="@+id/circle1"
+      android:layout_width="37dp"
+      android:layout_height="37dp"
+      android:layout_marginEnd="11dp"
+      android:src="@drawable/circle_cf8f8f8"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toStartOf="@+id/circle2"
+      app:layout_constraintHorizontal_bias="0.5"
+      app:layout_constraintHorizontal_chainStyle="packed"
+      app:layout_constraintStart_toStartOf="parent"
+      app:layout_constraintTop_toTopOf="parent"/>
+
+    <ImageView
+      android:id="@+id/circle2"
+      android:layout_width="37dp"
+      android:layout_height="37dp"
+      android:layout_marginEnd="11dp"
+      android:src="@drawable/circle_cf8f8f8"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toStartOf="@+id/circle3"
+      app:layout_constraintHorizontal_bias="0.5"
+      app:layout_constraintStart_toEndOf="@+id/circle1"
+      app:layout_constraintTop_toTopOf="parent"/>
+
+    <ImageView
+      android:id="@+id/circle3"
+      android:layout_width="37dp"
+      android:layout_height="37dp"
+      android:src="@drawable/circle_cf8f8f8"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toEndOf="parent"
+      app:layout_constraintHorizontal_bias="0.5"
+      app:layout_constraintStart_toEndOf="@+id/circle2"
+      app:layout_constraintTop_toTopOf="parent"/>
+
+    <ImageView
+      android:id="@+id/icon_share"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      app:layout_constraintBottom_toBottomOf="@+id/circle1"
+      app:layout_constraintEnd_toEndOf="@+id/circle1"
+      app:layout_constraintStart_toStartOf="@+id/circle1"
+      app:layout_constraintTop_toTopOf="@+id/circle1"
+      app:srcCompat="@drawable/icon_header_share_over_view"/>
+
+    <ImageView
+      android:id="@+id/icon_like"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      app:layout_constraintBottom_toBottomOf="@+id/circle2"
+      app:layout_constraintEnd_toEndOf="@+id/circle2"
+      app:layout_constraintStart_toStartOf="@+id/circle2"
+      app:layout_constraintTop_toTopOf="@+id/circle2"
+      app:srcCompat="@drawable/icon_header_like_off_over_view"/>
+
+    <ImageView
+      android:id="@+id/icon_bookmark"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      app:layout_constraintBottom_toBottomOf="@+id/circle3"
+      app:layout_constraintEnd_toEndOf="@+id/circle3"
+      app:layout_constraintStart_toStartOf="@+id/circle3"
+      app:layout_constraintTop_toTopOf="@+id/circle3"
+      app:srcCompat="@drawable/icon_header_bookmark_off_over_view"/>
+
+  </android.support.constraint.ConstraintLayout>
+</android.support.constraint.ConstraintLayout>

+ 62 - 0
app/src/main/res/layout/overview_item_view.xml

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:tools="http://schemas.android.com/tools"
+  android:layout_width="match_parent"
+  android:layout_height="202dp">
+
+  <ImageView
+    android:id="@+id/image_view_item"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:src="@color/C999999"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toTopOf="parent"
+    />
+
+  <TextView
+    android:id="@+id/text_view_title"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:gravity="center_horizontal"
+    android:lineSpacingExtra="5.5sp"
+    android:textColor="@color/CF8F8F8"
+    android:textSize="14sp"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toTopOf="parent"
+    tools:text="문을 여시오
+대문이 대문짝 5"/>
+
+  <TextView
+    android:id="@+id/text_view_sub_title"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:gravity="center_horizontal"
+    android:lineSpacingExtra="4sp"
+    android:textColor="@color/CFFFFFF"
+    android:textSize="11sp"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toBottomOf="@+id/text_view_title"
+    tools:text="샛노란 공장 대문 열면
+트렌디한 감성이 훅"/>
+
+  <TextView
+    android:id="@+id/text_view_category_number"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginEnd="6dp"
+    android:layout_marginBottom="6dp"
+    android:lineSpacingExtra="3.5sp"
+    android:textColor="@color/CFFFFFF"
+    android:textSize="12sp"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintEnd_toEndOf="parent"
+    tools:text="Cover"/>
+</android.support.constraint.ConstraintLayout>