From 511e0380545403355190a14fd6057abf352e45a8 Mon Sep 17 00:00:00 2001 From: teddywilson Date: Mon, 10 Jul 2017 14:09:01 -0400 Subject: [PATCH] made card layout --- .../fragments/ViewFragment.java | 8 +-- .../spurceexampleapp/util/ColorUtils.java | 43 +++++++++++++++ .../spurceexampleapp/widgets/CardLayout.java | 55 +++++++++++++++++++ app/src/main/res/layout/view_card.xml | 24 ++++++++ app/src/main/res/layout/view_fragment.xml | 7 ++- app/src/main/res/values/colors.xml | 9 +++ 6 files changed, 139 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/com/willowtreeapps/spurceexampleapp/util/ColorUtils.java create mode 100644 app/src/main/java/com/willowtreeapps/spurceexampleapp/widgets/CardLayout.java create mode 100644 app/src/main/res/layout/view_card.xml diff --git a/app/src/main/java/com/willowtreeapps/spurceexampleapp/fragments/ViewFragment.java b/app/src/main/java/com/willowtreeapps/spurceexampleapp/fragments/ViewFragment.java index 75d96b6..dabd061 100644 --- a/app/src/main/java/com/willowtreeapps/spurceexampleapp/fragments/ViewFragment.java +++ b/app/src/main/java/com/willowtreeapps/spurceexampleapp/fragments/ViewFragment.java @@ -27,7 +27,6 @@ import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; -import android.support.v4.content.ContextCompat; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.View; @@ -36,6 +35,8 @@ import android.widget.GridLayout; import com.willowtreeapps.spurceexampleapp.R; +import com.willowtreeapps.spurceexampleapp.util.ColorUtils; +import com.willowtreeapps.spurceexampleapp.widgets.CardLayout; import java.util.ArrayList; import java.util.List; @@ -61,8 +62,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, @Nullable final int CHILD_VIEW_COUNT = parent.getColumnCount() * parent.getRowCount(); for (int i = 0; i < CHILD_VIEW_COUNT; i++) { - View childView = new View(getContext()); - childView.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.spruceViewColor)); + CardLayout childView = new CardLayout(getContext()); childView.setAlpha(0F); parent.addView(childView); children.add(childView); @@ -72,7 +72,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, @Nullable @Override public void onGlobalLayout() { Resources res = getResources(); - int tileMargins = Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, res.getDisplayMetrics())); + int tileMargins = Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, res.getDisplayMetrics())); final int childWidth = parent.getWidth() / parent.getColumnCount() - (tileMargins * 2); final int childHeight = parent.getHeight() / parent.getRowCount() - (tileMargins * 2); diff --git a/app/src/main/java/com/willowtreeapps/spurceexampleapp/util/ColorUtils.java b/app/src/main/java/com/willowtreeapps/spurceexampleapp/util/ColorUtils.java new file mode 100644 index 0000000..d24d4e1 --- /dev/null +++ b/app/src/main/java/com/willowtreeapps/spurceexampleapp/util/ColorUtils.java @@ -0,0 +1,43 @@ +package com.willowtreeapps.spurceexampleapp.util; + +import android.content.Context; +import android.support.v4.content.ContextCompat; + +import com.willowtreeapps.spurceexampleapp.R; + +import java.util.Random; + +/** + * Created by teddywilson on 7/10/17. + */ + +public class ColorUtils { + + public static final int ICON_COLOR_COUNT = 6; + + public static int randomIconColor(Context context) { + int val = (int) (Math.random() * 5); + switch (val) { + case 0: + return ContextCompat.getColor(context, R.color.icon_color_1); + + case 1: + return ContextCompat.getColor(context, R.color.icon_color_2); + + case 2: + return ContextCompat.getColor(context, R.color.icon_color_3); + + case 3: + return ContextCompat.getColor(context, R.color.icon_color_4); + + case 4: + return ContextCompat.getColor(context, R.color.icon_color_5); + + case 5: + return ContextCompat.getColor(context, R.color.icon_color_6); + + } + throw new RuntimeException("Invalid color value"); + } + +} diff --git a/app/src/main/java/com/willowtreeapps/spurceexampleapp/widgets/CardLayout.java b/app/src/main/java/com/willowtreeapps/spurceexampleapp/widgets/CardLayout.java new file mode 100644 index 0000000..ea75c7c --- /dev/null +++ b/app/src/main/java/com/willowtreeapps/spurceexampleapp/widgets/CardLayout.java @@ -0,0 +1,55 @@ +/* + * Spruce + * + * Copyright (c) 2017 WillowTree, Inc. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ + +package com.willowtreeapps.spurceexampleapp.widgets; + +import android.content.Context; +import android.support.annotation.Nullable; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.widget.LinearLayout; + +import com.willowtreeapps.spurceexampleapp.R; + +public class CardLayout extends LinearLayout { + + public CardLayout(Context context) { + super(context); + init(); + } + + public CardLayout(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + init(); + } + + public CardLayout(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + init(); + } + + private void init() { + LayoutInflater inflater = LayoutInflater.from(getContext()); + inflater.inflate(R.layout.view_card, this, true); + } + +} diff --git a/app/src/main/res/layout/view_card.xml b/app/src/main/res/layout/view_card.xml new file mode 100644 index 0000000..9a1c429 --- /dev/null +++ b/app/src/main/res/layout/view_card.xml @@ -0,0 +1,24 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/view_fragment.xml b/app/src/main/res/layout/view_fragment.xml index 3d4f2d6..8757c2c 100644 --- a/app/src/main/res/layout/view_fragment.xml +++ b/app/src/main/res/layout/view_fragment.xml @@ -35,15 +35,16 @@ android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:layout_marginTop="4dp" - android:layout_weight="9.5"> + android:layout_weight="9.5" + android:background="@color/recycler_background"> + android:columnCount="4" + android:rowCount="6"/> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index e46b12c..cde8900 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -33,4 +33,13 @@ #F8F8F9 #D9E1E2 #DBE9F9 + + + #abe8dc + #b8dcf2 + #f7c2ba + #f5d1ad + #faeba6 + #b5edcc +